的? matcher vs pattern |空

时间:2016-01-23 16:42:44

标签: javascript regex

我一直在练习正则表达式并遇到过这个问题。

匹配度:

  • 战斧
  • 分裂斧头

我使用以下方法找到了解决方案:

(battle|splitting|pick)(\s|)axe

建议的解决方案是:

(battle|splitting|pick)\s?axe

在我原来的解决方案中," OR"操作员工作?当我在没有两个表达式的javascript中运行标准OR运算符时,它会抛出错误。

时:

(pattern|)

相当于:

pattern?

(pattern|)如何在我的第一个解决方案中工作?

1 个答案:

答案 0 :(得分:1)

  

在我原来的解决方案中," OR"操作员工作?当我在没有两个表达式的javascript中运行标准OR运算符时,它会抛出错误。

正则表达式运算符不是像||这样的JS运算符。空字符串是有效的正则表达式,可以作为Alternation operator的操作数。

  

(pattern|)是否等同于pattern?

不完全是,第一个中还有capturing group。但是他们在匹配语言方面的工作方式相同,是的。

相关问题