digitalmars.D.learn - regex start-of-line
- spir (21/21) Feb 12 2011 Hello,
- Jesse Phillips (7/26) Feb 12 2011 "The pipe has the lowest precedence of all operators."
- spir (7/8) Feb 12 2011 Right, I guess this answers my question :)
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
Feb 12 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"
Feb 12 2011
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
Feb 12 2011








spir <denis.spir gmail.com>