[TxMt] Re: possible format strings bug
Matt Neuburg
matt at tidbits.com
Mon Apr 7 18:34:37 UTC 2014
On Apr 5, 2014, at 7:06 PM, Allan Odgaard <mailinglist at textmate.org> wrote:
> Contrast that to /(hey)?/. By adding ‘?’ after ‘(hey)’ we make that part of the regexp optional. This means the regexp will try to match “hey” (and put that in $1), but if there is no “hey” in the text, the regexp will still match (as we made this part optional), though nothing is captured in $1.
I have to fight my intuitions here. What I intuitively expect is that the Find/Replace dialog is a contract. If I say:
Find: (hello)
Replace: [...whatever...]
Then, since "hello" _is_ found, I expect that it will be replaced, in its entirety, by _something_: we DID find it so we WILL replace it. Thus, for example, I am surprised when this:
Find expression:
(?<orig>hello)
Replace expression:
${orig/(?<one>hey)?/${one:?howdy:scram}/}
...yields "scramhello" in the document. The calculus in the replace expression has settled on the word "scram", which is what I was trying to achieve, but since what was originally found is "hello", I expect _all_ of "hello" to be replaced by "scram". In other words, I expect the replace expression to be a calculation about what to put in place of the whole text found by the Find expression. m.
--
matt neuburg, phd = http://www.apeth.net/matt/
pantes anthropoi tou eidenai oregontai phusei
Programming iOS 7! http://shop.oreilly.com/product/0636920031017.do
iOS 7 Fundamentals! http://shop.oreilly.com/product/0636920032465.do
RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html
More information about the textmate
mailing list