我一直在练习正则表达式并遇到过这个问题。
匹配度:
我使用以下方法找到了解决方案:
(battle|splitting|pick)(\s|)axe
建议的解决方案是:
(battle|splitting|pick)\s?axe
在我原来的解决方案中," OR"操作员工作?当我在没有两个表达式的javascript中运行标准OR运算符时,它会抛出错误。
时:
(pattern|)
相当于:
pattern?
(pattern|)
如何在我的第一个解决方案中工作?
答案 0 :(得分:1)
在我原来的解决方案中," OR"操作员工作?当我在没有两个表达式的javascript中运行标准OR运算符时,它会抛出错误。
正则表达式运算符不是像||
这样的JS运算符。空字符串是有效的正则表达式,可以作为Alternation operator的操作数。
(pattern|)
是否等同于pattern?
不完全是,第一个中还有capturing group。但是他们在匹配语言方面的工作方式相同,是的。