我一直在练习正则表达式并遇到了这个问题。
匹配:
- 战斧
- 劈斧
- 镐
我使用以下方法找到了解决方案:
(battle|splitting|pick)(\s|)axe
建议的解决方案是:
(battle|splitting|pick)\s?axe
在我原来的解决方案中,“OR”运算符是如何工作的?当我在没有两个表达式的 JavaScript 中运行标准 OR 运算符时,它会抛出错误。
是:
(pattern|)
相当于:
pattern?
(pattern|)
在我的第一个解决方案中如何工作?
最佳答案
In my original solution, how is the "OR" operator working? When I run the standard OR operator in javascript without two expressions, it throws an error.
正则表达式运算符不是像 ||
这样的 JS 运算符。空字符串是有效的正则表达式,可以用作 Alternation operator 的操作数。 .
Is
(<i>pattern</i>|)
equivalent to<i>pattern</i>?
不完全是,还有一个额外的 capturing group在第一个中。但它们在匹配语言方面的工作原理是相同的,是的。
关于javascript - 这 ?匹配器与模式|空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34966043/