使用前瞻查找最后一个字符
Using lookahead to find the last character
我想匹配以 "o"、"s"、"x"、"ch" 或 "sh" 结尾的词,但由于某种原因它匹配任何含有这些字母的单词。
这是我的正则表达式:
o|s|x|ch|sh(?=$)
一些示例:
- lobster // 不应该匹配
- peach // 应该匹配
- expert // 不应该匹配
- 马铃薯 // 应该匹配
您必须对交替进行分组,否则它会被解释为:
o OR s OR x OR ch OR sh(?=$) // pseudo-code
您可以使用非捕获组将它们组合在一起:
.*(?:o|s|x|ch|sh)(?=$)
并且 .*
允许匹配完整的单词。
我想匹配以 "o"、"s"、"x"、"ch" 或 "sh" 结尾的词,但由于某种原因它匹配任何含有这些字母的单词。
这是我的正则表达式:
o|s|x|ch|sh(?=$)
一些示例:
- lobster // 不应该匹配
- peach // 应该匹配
- expert // 不应该匹配
- 马铃薯 // 应该匹配
您必须对交替进行分组,否则它会被解释为:
o OR s OR x OR ch OR sh(?=$) // pseudo-code
您可以使用非捕获组将它们组合在一起:
.*(?:o|s|x|ch|sh)(?=$)
并且 .*
允许匹配完整的单词。