说有六个字符串
“abcf bbb ccc”
“aaa abcd ccc”
用户输入表达“<abc[!e]
”
此表达式转换为以下正则表达式“^ abc [^ e]”
翻译的正则表达式将成功匹配字符串1和3
如果我想匹配字符串4和6,则必须将表达式转换为“\ Wabc [^ e]”(这也会在abc chars之前匹配空格:(,这不是很好)
不幸的是,用户输入的表达式需要在正则表达式中进行转换,以匹配1,3和4,6个字符串。
有没有办法将用户输入的表达式转换为正则表达式,它将组合“^ abc [^ e]”和“\ Wabc [^ e]”表达式(理想情况下第二个表达式与第一个空格不匹配:))
答案 0 :(得分:4)
Perl知道零宽度字边界\ b:
\babc[^e]
我认为它应该适用于大多数Perl风格的正则表达式引擎。