正则表达式:负环视之间有零个或多个字符
Regex: negative lookarounds with zero or more characters between
我有一个消极的后视和一个消极的前瞻,到目前为止它几乎可以工作。我用谷歌搜索过,我搜索过 Whosebug,但找不到我的确切问题。我想要实现的是捕获括号内的任何文本,只要它们在我的 <code></code>
标签之间找不到。
我的正则表达式尝试
(?<!<code>)\[(.*?)\](?!<\/code>)
测试文本
[bracket] <-- currently matches (ok)
<code>[bracket] <-- currently does NOT match (ok)
[bracket]</code> <-- currently does NOT match (ok)
<code> some text [bracket] other text </code> <-- currently matches (!!NOT OK!!)
<code>[bracket]</code> <-- currently does NOT match (ok)
我真的很难解决这样一个事实,即您必须在负 lookbehind/negative 前瞻中具有固定宽度。我已经尝试了从试图抓取 <code>
和方括号之间的任何字符的任何方法,但只是抓取了 <code>
标签并与上面的几乎所有示例匹配。我试过 ^
字符来尝试排除任何带有 <code>
的行,但最终只是排除了所有内容。我束手无策。任何方向都非常感谢!!
您可以使用:
<code>[\s\S]*?</code>(*SKIP)(*FAIL)|\[.+?\]
我有一个消极的后视和一个消极的前瞻,到目前为止它几乎可以工作。我用谷歌搜索过,我搜索过 Whosebug,但找不到我的确切问题。我想要实现的是捕获括号内的任何文本,只要它们在我的 <code></code>
标签之间找不到。
我的正则表达式尝试
(?<!<code>)\[(.*?)\](?!<\/code>)
测试文本
[bracket] <-- currently matches (ok)
<code>[bracket] <-- currently does NOT match (ok)
[bracket]</code> <-- currently does NOT match (ok)
<code> some text [bracket] other text </code> <-- currently matches (!!NOT OK!!)
<code>[bracket]</code> <-- currently does NOT match (ok)
我真的很难解决这样一个事实,即您必须在负 lookbehind/negative 前瞻中具有固定宽度。我已经尝试了从试图抓取 <code>
和方括号之间的任何字符的任何方法,但只是抓取了 <code>
标签并与上面的几乎所有示例匹配。我试过 ^
字符来尝试排除任何带有 <code>
的行,但最终只是排除了所有内容。我束手无策。任何方向都非常感谢!!
您可以使用:
<code>[\s\S]*?</code>(*SKIP)(*FAIL)|\[.+?\]