【发布时间】:2013-12-18 20:12:41
【问题描述】:
为什么这个正则表达式不为这个字符串返回真值:X1_Y1
'.*X1_(?!(Y3|_))(_.*|$)'
由于 X1_ 在到达下划线或字符串结尾之前没有跟随 Y3,因此字符串 X1_Y1 应该是匹配的。我的正则表达式有什么问题?
【问题讨论】:
-
如果要
Y1匹配第二组,需要将第二组中的_.*改为.*。 -
Blue 的右侧从第二次捕获中删除下划线
-
这仅适用于我给出的简单示例,但对于 X1_Y1Y3_H5 也将返回 true。这是不正确的,因为我不希望它返回为真,因为在 X1 之后但在下一个下划线之前的字符串中确实存在 Y3 字符串。
标签: regex regex-negation regex-lookarounds