Thread overview | |||||
---|---|---|---|---|---|
|
February 12, 2011 regex start-of-line | ||||
---|---|---|---|---|
| ||||
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?
Denis
--
_________________
vita es estrany
spir.wikidot.com
|
February 12, 2011 Re: regex start-of-line | ||||
---|---|---|---|---|
| ||||
Posted in reply to spir | 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" |
February 12, 2011 Re: regex start-of-line | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | On 02/12/2011 06:57 PM, Jesse Phillips wrote: > "The pipe has the lowest precedence of all operators." Right, I guess this answers my question :) Denis -- _________________ vita es estrany spir.wikidot.com |
Copyright © 1999-2021 by the D Language Foundation