我无法让它发挥作用
我正在尝试匹配[A](B)
中的A和B,但如果它不是以!
开头,它应该只进行匹配。
到目前为止我已经这样了。
/\[([^\]]+)]\(([^)]+)\)/
它匹配A和B,但是如果我添加[^\!]
它就不匹配任何东西。
/[^\!]\[([^\]]+)]\(([^)]+)\)/
值![A](B)
可以是更大字符串中的任何位置。
为什么这不起作用?
答案 0 :(得分:1)
如果正在使用的正则表达式支持lookbehind's,则以下内容应该可以正常工作
(?<!!)\[A\]\(B\)
第一组意味着没有!后面
答案 1 :(得分:1)
试试这个:([^!]|^)(\[A\]\(B\))
答案 2 :(得分:1)
这对我来说适用于TextPad(目前我只有正则表达式。你可能需要修改转义):
\(^\|[^\!]\)\[[^]]+\]([^)]+)
\(^\|[^\!]\)
匹配行的开头或!
以外的字符。
答案 3 :(得分:0)
由于您不能使用后视断言,因此您可以使用两个具有逻辑连接的不同正则表达式:
/\[([^\]]+)]\(([^)]+)\)/ && !(/!\[([^\]]+)]\(([^)]+)\)/)