2015-04-03 4 views
0

У меня есть текстовый документ, который мне нужно изменить. Большинство слов разделяются символом «-» (минус).Как исключить определенное слово в regex

Так в возвышенной тексте, я попробовал этот шаблон:

(\w+)\-(\w+)

Эта модель отлично работает нормально, но есть одно слово, которое имеет «-» (минус), естественно, в этом документе. (Например: Foo-бар)

Так мне нужен шаблон, который находит все минус отделено слова, но exludes «Foo-бар»

Извините, если этот вопрос задают раньше, но я не мог найти ответ мне нужно

+0

попытаться дать первое предпочтение пользователю, который разместил первый рабочий ответ. –

ответ

1

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

(?i)(?!\bfoo\-bar\b)\b(\w+)-(\w+)\b 

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

См пример:

enter image description here

Если вы хотите заменить дефис с пространством в тех случаях, я предоставил на скриншоте, вы можете использовать (?!\bfoo\-bar\b)\b(\w+)\-(?=\w) поиска регулярных выражений и заменить $1 (результат: go there now):

enter image description here

+0

Что есть еще слова, которые я хочу исключить? – Valour

+1

Добавьте их в круглые скобки: '(?! \ B (?: Foo-bar | новое слово | другое слово) \ b)' –

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