2015-09-03 2 views
1

Например, если у меня есть 3 слова:регулярного выражения матча, кроме конца строки

throw 
growing 
plows 

Я желающие что-то, что будет возвращать только слова без «ой» на конце:

growing 
plows 

В основном, полная противоположность:

/ow$/ 

Таким образом, он вернет только слова, когда «ow» НЕ отображается на конце.

ответ

1
^.*(?<!ow)$ 

Вы можете использовать lookbehind here.See демо.

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

+0

Это похоже на работу, но я думаю, что я может неправильно сформулировать это. Я пытаюсь использовать его с preg_replace php, поэтому он будет вытаскивать только конкретное имя, а не целое слово. IE: '$ pattern = '/^.*(? Robbie

+0

@ Robbie, что вы хотите достичь, замените слова, не заканчивающиеся на' ow' 'ou'? – 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)

Смежные вопросы