我一直在寻找解决方案来弄清楚如何使用|
(或)条件应用多个正则表达式,但它似乎不起作用。有人可以发光吗?这是我一直在努力做的事情。我搜索了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");
我在这里缺少什么?
答案 0 :(得分:0)
环顾四周的问题是它们是"零宽度断言"实际上并不匹配任何内容,因此(?=_)red
永远不会匹配" _red",因为" _",而看到前瞻,实际上永远无法匹敌。
我们可以修复你的模式:
(?:^)red|((?=[_]).)red
https://regex101.com/r/H9VSzQ/2/
或者简单地摆脱多余的前瞻(以及单字符字符类!)并继续匹配下划线:
(?:_|^)red