这是字符串:
$$ START $$应与$$ MIDDLE $$匹配
$$ NOTMATCH $$这不应该匹配
$$ LAST $$这应匹配
在上一段中,我需要构建一个可以匹配所有关键字($$ [a-zA-Z] $$)的正则表达式,除了$$ NOTMATCH $$
到目前为止,我已经尝试了(?!\$\$NOTMATCH\$\$)(\$\$([^\$\$]+)\$\$)
但它没有正常工作,并且没有考虑关键字末尾的$$符号,演示here。
欢迎任何建议。
提前致谢
答案 0 :(得分:1)
我需要构建一个可以匹配除
($$[a-zA-Z]$$)
之外的所有关键字$$NOTMATCH$$
的正则表达式
你可以在中间使用负向前瞻:
(?<!\$)\$\$(?!NOTMATCH)[^$\s]+\$\$(?!\$)
(?!NOTMATCH)
字符之间有NOTMATCH
,则$$
为否定匹配将导致匹配失败。(?<!\$)
为负面观察,以确保我们在比赛前没有$
。(?<\$)
是负面的预测,以确保我们在比赛结束后没有$
。