谢谢你看我的问题。Regular Expression Alternatives(All Matches)
我有替代品的一个长长的清单,我想在一个正则表达式匹配:
var re = new RegExp('o1|o2|o3|o4|o5|...','g')
的问题,我遇到的是,如果O1 O2是一个字符串会发生什么。例如
var re = new RegExp('a|b|c|ab|abc','g')
var s = 'abc'
s.match(re)
- > [ “A”, “B”, “C”]
我想为它也能够匹配的“AB “和”abc“。我意识到如果我改变RegExp的顺序,我可以让它匹配更长的字符串,但我真的想获得所有匹配。
这样做的最好方法是什么?这并不一定是处理一长串替代品的最佳(或好方法)。我想过用自己的正则表达式来测试每个替代方案,但这似乎效率较低。
任何指导都会很棒。谢谢!
所以,你要的所有可能的匹配这些替代品?我不认为只有一个表达式才有可能。 –
是的,那是我想要的。过去我使用过这个解决方案,我有一个没有重叠的选项列表,它比检查每个选项的自己的正则表达式或使用indexOf更快。我认为,因为替代方案中可能存在重叠,我只需要遍历列表: -/ – bobjenkins1234