当前正则表达式:[[\/\!]*?[^\[\]]*?]
在以下测试用例中成功匹配[size=16]
和[/size]
但不匹配[abc]
的目标。
[size=16]1234[/size]
[abc](htt)
Regex目前符合第三个测试用例;这是特定于始终遵循括号。所以我在考虑使用if group's next char == "(", do not match
但是 - 我真的不知道如何在正则表达式中编写这样的逻辑...
答案 0 :(得分:1)
MarshalByRefObject
向前或向前查看是否有匹配然后继续(或不继续),具体取决于是否匹配。
否定看起来提前断言如下所示:
AppDomain
坚持到最后,给它提供parantheses,你很高兴:
(?!regex)
答案 1 :(得分:1)
你想要的是一个消极的前瞻"。
A"环视"是一个匹配的组,但不包括在结果中。它们以(?
开头,以)
结尾。
有两种类型的环视:前瞻和后瞻:
<
之后立即用?
表示(即?<
),但这不是你在这里的目的。<
之后没有?
,则为默认值。两种类型都可以是正面的或负面的:
=
表示。!
表示。具有正面或负面前瞻或后面的基本结构后,中间的内容是正常的正则表达式语法,就像它是任何其他组一样,所以在你的情况下你需要一个转义左括号\(
。
将所有内容放在一起,你只需要在你拥有的内容中加以解决:(?!\()