RegEx不按预期运行,但在x修饰符时有效

时间:2014-12-08 14:58:53

标签: regex

我有这个RegEx:

(?<=\s)(?i)bananas?(\*(x|u|z))?(?=<VNW) 

哪个应该找到如下的点击:

banana*x
bananas
Bananas*z

只有在前面有空格时(我猜是空格字符很好吗?是否只有空格的简写?)后跟<VNW

但是,在使用an online regex tester进行测试时,这不会按预期运行。试试bananas*z<VNW。它不会成为一场比赛。但是,添加x修饰符时,它似乎工作正常!将RegEx更改为:

(?<=\s)(?ix)bananas?(\*(x|u|z))?(?=<VNW)

它应该工作正常。但我不明白为什么?我的查询中没有一个空格,正则表达式中也没有。发生了什么事?

1 个答案:

答案 0 :(得分:2)

正则表达式很好,期望你最后有一个额外的空间

删除它,它将正常工作

(?<=\s)(?i)bananas?(\*(x|u|z))?(?=<VNW)

Regex example link