正则表达式匹配一个字符串,取反另一个字符串

时间:2018-08-28 23:50:52

标签: regex regex-negation regex-lookarounds regex-group regex-greedy

我需要一个正则表达式来仅匹配Test<中的Test<OKAY>字符串,而它不匹配Test<?>

Test<?>  // shouldn't match
Test<OKAY> // should match

我尝试了Test<[^?],但它匹配Test<O中的Test<而不是Test<OKAY>

我该如何解决?

3 个答案:

答案 0 :(得分:2)

Test<之后,您需要对非问号字符进行正向搜索,然后在>后面加括号以表明括号的结尾:

Test<(?=[^?]+>)

https://regex101.com/r/gxpq3E/1

答案 1 :(得分:1)

放眼望去:

Test<(?=OKAY>)

请参见live demo

答案 2 :(得分:0)

测试<(?!\?)有效

在此处使用否定前瞻。

?! =后面没有\?