正则表达式匹配两个单词之一

Cyb*_*kie 273 regex forms validation

我有一个输入只能有2个值applebanana.我可以使用什么正则表达式来确保提交两个单词中的任何一个?

phl*_*tos 427

这样做:

/^(apple|banana)$/
Run Code Online (Sandbox Code Playgroud)

排除从捕获的字符串(例如$1,$2):

(?:apple|banana)
Run Code Online (Sandbox Code Playgroud)

  • 对于某些人来说,将其用作非捕获组将非常有用.使用`(?:apple | banna)`将匹配,但不会将它们添加到捕获的字符串列表中(例如`$ 1`,`$ 2` ..`$ N`). (41认同)
  • 上面的正则表达式匹配 apple 和 Banana,但不匹配 applebanana。 (2认同)
  • 不要将此处使用的圆括号与字符类的方括号混淆。 (2认同)

smo*_*oak 88

有不同的正则表达式引擎,但我认为其中大多数将使用此:

apple|banana
Run Code Online (Sandbox Code Playgroud)

  • 如果你打算在你的正则表达式中添加更多内容,你需要在你的单词周围加上括号,如:`(apple | banana)`. (52认同)
  • 但如何使其不区分大小写? (3认同)