2013-04-09 5 views
-1

Я надеюсь, что кто-то может мне помочь, возможно, с простым вопросом регулярного выражения. Мне нужно сопоставить строки, содержащие набор слов, но не содержащие другого слова.строка регулярного выражения, не содержащая слово?

например. Файл, который я ищу, содержит:

Боб имеет шляпу.
Билл имеет шляпу.
Фред имеет шляпу.

То, что я хочу сделать, соответствует всем строкам, имеющим «шляпу». если строка также не содержит bob.

Это имеет смысл?

Это должно быть основное регулярное выражение, а не код или что-то еще, поскольку я вводю это в программу анализа текста.

+0

Вы пробовали что-нибудь? –

ответ

6
^(?=.*\bhas a hat\b)(?!.*\bBob\b).* 

соответствует всей строке, если она содержит has a hat в любом месте и не содержит Bob в любом месте (в любом порядке).

Конечно, это также не соответствует строке, например, Fred has a hat. Bob doesn't.

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