我想过滤掉所有以==
开头且以==
结尾的字词,例如==Hello==
,但我不想要{{1}这样的字词成为这种匹配的一部分,
我正在使用以下正则表达式,但它不会返回我正在寻找的结果:===Bye===
,我在制定正则表达式时遇到了什么错误?
答案 0 :(得分:3)
==(.*?)==
仍匹配===Bye===
。您需要特别检查没有前面或后面的=
。您还需要确保没有捕获=
,因此.*
无效。使用[^=]
。
(?<!=)==([^=]*)==(?!=)
答案 1 :(得分:0)
试试这个:
([^=]|^)==([^=]+)==([^=]|$)
它也处理在给定String的开头或结尾发生的匹配。
答案 2 :(得分:0)
(?<!=)==\K[^=]+(?===)(?!===)
参见演示 here 。