2015-09-03 245 views
1

举例来说,如果我有3个字:正则表达式匹配

throw 
growing 
plows 

我想要的东西,将在年底返回唯一的话没有“嗷嗷”:

growing 
plows 

基本上完全相反:

/ow$/ 

所以它只会在'ow'不显示在结尾时返回单词。

回答

1
^.*(?<!ow)$ 

您可以在这里使用lookbehind.See demo。

https://regex101.com/r/cT0hV4/4

+0

这似乎有效,但我认为我可能说错了。我试图用php的preg_replace来使用它,所以它只会提取特定的ou而不是整个单词。 IE: '$ pattern ='/^.*(? Robbie

+0

@Robbie你想实现什么样的动作?用'ou'替换不是'ow'的单词? – vks

+0

不能替换整个单词,只是'ow'带'ou',但只有当它不以'ow'结尾时。 我发现preg_match的解决方法,但我真的很想至少学会一种方法来做到这一点,查看替换,只是为了我自己的知识。 – Robbie

1

使用负向预测。

^(?!.*ow$).+ 
0

Python代码:

lst = ["throw","growing","plows"] 

for item in lst: 
    if not str.endswith(item.lower(), "ow"): 
     print item 
0

右键,当 '嗷嗷' 根本不the end of the word显示:

/\b\w+(?<!ow)\b/i 

使用单词边界\b和单词字符\w一起回顾后(?<!ow)