Regex отрицание - разбор слова - PullRequest
       0

Regex отрицание - разбор слова

3 голосов
/ 04 сентября 2010

Я пытаюсь разобрать фразу и исключить общие слова.

Например, во фразе "по мере того как мир поворачивается" я хочу исключить общие слова "как" и "the" и только возвращать"мир" и "повороты".

(\ w + (?! the | as))

Не работает.Обратная связь приветствуется.

Ответы [ 2 ]

2 голосов
/ 04 сентября 2010

Предварительный просмотр должен стоять на первом месте:

(\b(?!(the|as)\b)\w+\b)

Я также добавил границы слов, чтобы гарантировать, что он соответствует только целым словам, в противном случае он не будет соответствовать полному слову «как», но он будет успешно соответствоватьбуква "s" этого слова.

Вы также можете подумать, что соответствует \w и соответствует ли это вашим потребностям.Если вы ищете слова на английском языке, возможно, вас интересуют буквы, а не цифры, и вы можете включить некоторые знаки препинания, исключаемые \w, например апострофы.Вместо этого вы можете попробовать что-то вроде этого ( Rubular ):

/(\b(?!(?:the|as)\b)[a-z'-]+\b)/i

Для более точного сопоставления слов в человеческом языке вы можете использовать библиотеку синтаксического анализа естественного языка вместо регулярных выражений.1013 *

1 голос
/ 04 сентября 2010

Вы должны использовать границы слов, чтобы соответствовать только целым словам.Либо с предварительным утверждением:

(\b(?!(?:the|as)\b)\w+\b)

Или с предварительным утверждением:

(\b\w+\b(?<!\b(?:the|as)))
...