我知道perl兼容的正则表达式可以通过使用" lookaround"技术,但我手上只有posix正则表达式,它不支持" lookaround",所以我的问题是我可以使用posix正则表达式找到A而不是B就行了。
这是一个简单的例子:
我想找一个" foo"但没有" bar"在一条线上,
this has a foo # match
i can haz foo # match
but i haz foo and bar # NOT match
答案 0 :(得分:0)
最好的方法(无论使用哪种语言或工具)都是分别测试两种模式(或两种字符串)。 sed示例:
sed -n '/foo/{/bar/!p}'
简短而有效。
要对一个ERE模式执行相同操作,您必须写:
^([^b]|b([^a]|$|a([^r]|$)))*foo([^b]|b([^a]|$|a([^r]|$)))*$
你认为这是一个更好的选择吗? (这是一个三个字母的单词)