使用regexp查找单词不以字母表达式结尾

时间:2015-10-27 16:46:45

标签: regex

我试图找到任何结束'k'字母的单词,并且必须在这些字母'a,e,o'之后出现。

正则表达式应该找到这个:

'stack'
'kick'
'kiik'
'kimk'
'gesk'

并且不应该找到以下内容:

'book'
'beak'
'aiok'

对于此增益,我使用此调节器表达式:

  

(?![AEO] + K)^。*?$

。但它不起作用。

3 个答案:

答案 0 :(得分:2)

^.*(?<![aeo])k$

您可以使用此方法,因为您的所有字词都以k结尾。请参阅演示。lookbehind会在最后aeo之前将k的字词分开。

https://regex101.com/r/cD5jK1/3

答案 1 :(得分:1)

您可以使用此基于否定的正则表达式:

^.*[^aeo]k$

RegEx Demo

答案 2 :(得分:0)

您可能没有提供足够的信息,但我不明白为什么这里需要任何形式的外观。您应该能够简单地使用:

\b[A-Za-z]*[aeo]k\b

单词边界(\ b)将帮助您将此模式限制为仅限于单词。如果您需要考虑连字符,那么您也可以调整第一个范围以包含连字符。