我一直在练习正则表达式,并遇到了这个问题。The?匹配器vs模式|空
比赛:
- 战斧
- 劈斧
- 镐
我用来到了一个解决方案:
(battle|splitting|pick)(\s|)axe
建议的解决方案是:
(battle|splitting|pick)\s?axe
在我最初的解决方案中,“OR”运算符是如何工作的?当我在没有两个表达式的JavaScript中运行标准的OR运算符时,它会引发错误。
是:
(pattern|)
等同于:
pattern?
如何(pattern|)
在我的第一个解决方案的工作?
除了回答你的问题,建议的解决方案是相当令人费解,因为它匹配“战斧”“splittingaxe”和“镐”以及。我认为'(战斗)挑战'是更可取的。 – TAGraves
拼图的其他解决方案是'/ [\ w] + []?ax/g','/.+ []?ax/m'。 – 2016-01-23 21:30:12