C#正则表达式匹配开头的字符串和字开头的同时
问题描述:
说,有六根弦C#正则表达式匹配开头的字符串和字开头的同时
- “ABCD BBB CCC”
- “ABCE BBB CCC”
“ABCF BBB CCC”
“AAA ABCD CCC”
- “AAA ABCE CCC”
- “AAA ABCF CCC”
用户输入表述 “<abc[!e]
”
该表达式被转换为下面的正则表达式 “^ ABC [^ E]”
翻译正则表达式将成功匹配字符串1和3
如果我想匹配字符串4和6的表达式必须被翻译成“\ Wabc [^ e]”(这也会匹配abc chars之前的空格:(不好)
不幸的是用户输入的表达式需要在正则表达式中进行转换,以匹配1,3和4,6字符串。
有没有办法来翻译用户输入的表达式为正则表达式,将结合“^ ABC [^ E]”和“\ WABC [^ E]”表达式(理想情况下第二个表达式将不匹配第一空间:))
答
的Perl知道零宽度字边界\ b:
\babc[^e]
我认为应该在大多数Perl风格的正则表达式引擎的工作。
你试过了:“(^ abc [^ e] | \ Wabc [^ e])”?或者也许只是“(^ | \ W)abc [^ e]”? (因为我没有尝试过,我使用的是评论而不是答案) – 2009-05-06 18:53:36
我认为它也应该不匹配'aaaabcd' – 2009-05-06 18:57:51