使用前瞻查找最后一个字符

时间:2016-05-04 23:33:22

标签: regex lookahead

我希望匹配以“o”,“s”,“x”,“ch”或“sh”结尾的单词,但由于某种原因,它匹配任何具有这些字母的单词。

这是我的正则表达式:

o|s|x|ch|sh(?=$)

一些例子:

  • 龙虾//不应该匹配
  • 桃子//应该匹配
  • expert //不匹配
  • 土豆//应该匹配

1 个答案:

答案 0 :(得分:0)

你必须对交替进行分组,否则它会被解释为:

o OR s OR x OR ch OR sh(?=$) // pseudo-code

您可以使用非捕获组将它们组合在一起:

.*(?:o|s|x|ch|sh)(?=$)

.*允许匹配完整的单词。

Regex101