regex start-of-line
Jesse Phillips
jessekphillips+D at gmail.com
Sat Feb 12 09:57:00 PST 2011
spir Wrote:
> Hello,
>
> I have a regex bug in following conditions: users pass a series of regex
> formats (strings) from which I create regex engines later used for lexing. To
> ensure matching at start of (rest of) source, I prefix each format with '^'.
> Right in most cases. But the following regex:
> `^(true)|(false)`
> matches "false" anywhere in text ==> bug. Is this normal? There is a kind of
> ambiguity here, isn't there?
>
> As a workaround, I replaced:
> this.engine = Regex("^" ~ form);
> by
> this.engine = Regex(format("^(%s)", form));
> And indeed
> `^((true)|(false))`
> does not match "false" anywhere else as at start of source.
>
> Comments?
"The pipe has the lowest precedence of all operators."
http://www.regular-expressions.info/reference.html
Based on this page you should be able to do
`^(true|false)`
But I wouldn't be surprised if D would use e|f
"abc(def|xyz) matches abcdef or abcxyz"
More information about the Digitalmars-d-learn
mailing list