单个字符串

时间:2018-01-31 14:57:42

标签: javascript regex expression

我一直在寻找解决方案来弄清楚如何使用|(或)条件应用多个正则表达式,但它似乎不起作用。有人可以发光吗?这是我一直在努力做的事情。我搜索了StackOverflow的解决方案并将其发布到此处。 这是javascript语言。

regex1 = "/d", regex2 = "/W"

使用|合并两者regex3 = new Regex(regex1+"|"+regex2,"gi"); 这似乎工作正常。

当我尝试使用相同的登录进行前瞻时,它会失败。

要搜索的文字:Red _Red 'Red test 例如:

regex1 = "(?:^)red" , regex2 = "(?=[_])red"
regex3 = new Regex(regex1+"|"+regex2, "gi");

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

环顾四周的问题是它们是"零宽度断言"实际上并不匹配任何内容,因此(?=_)red永远不会匹配" _red",因为" _",而看到前瞻,实际上永远无法匹敌。

我们可以修复你的模式:

(?:^)red|((?=[_]).)red

https://regex101.com/r/H9VSzQ/2/

或者简单地摆脱多余的前瞻(以及单字符字符类!)并继续匹配下划线:

(?:_|^)red

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