2011-01-24 5 views
2

Допустим, что вся эта вещь есть строка, и я хотел бы совместить все эти слова в пределах < и> кто заканчивает словами собаку или птицу. Это может быть сделано также сделано с помощью регулярных выражений, как это:.Regex-not selector

< + (собака | птицы)>

Но я пытаюсь выбрать с помощью НЕ селектора. Только если он НЕ заканчивается кошкой, он должен быть выбран. Возможно ли выбрать что-то, что не содержит слово в regex?

<This is dog> 
<This is also a dog> 
<This is cat> 
<Dog and cat> 
<Where is dog> 
<I am a bird> 
<I am another bird> 

Спасибо,

Vizualni.

+1

Вы должны добавить какой язык вашей ориентации. Если вы можете сопоставить, вы можете «не совпадать» с логическим значением NOT. –

+0

Я пытаюсь сделать это в java. – Vizualni

+0

Посмотрите на это: http://stackoverflow.com/questions/406230/regular-expression-to-match-string-not-containing-a-word – Floern

ответ

2

Если мы говорим об аромате регулярного выражения, которое его поддерживает, вы можете использовать negative lookahead. Это:

<(?![^>]*(?:dog|cat)>).+> 

будет соответствовать угол консольно-замкнутые струны, которые сделать не конец с dog или cat.

0

В дополнении к отрицательному предпросмотру, вы можете также использовать отрицательного ('назад матч «>», не предшествует собакой или кошками):

<.+(?<!dog|cat)>