2013-05-21 2 views
-2

Как найти все вхождения слова, когда ему не предшествует другое? Так, например, я хочу найти все примеры «сахара», но не «уровень сахара в крови».Как найти все вхождения слова, когда ему не предшествует другое?

В следующем:

Увеличение сахара приведет к увеличению уровня сахара в крови и больше потребленного сахара будет ...

выше должен сделать 2 матча, а не 3

Заранее благодарю

+2

Пожалуйста, прочтите описание тега. Не все двигатели регулярных выражений равны, некоторые не поддерживают негативный внешний вид, например. –

+3

На каком языке это используется? – qJake

+0

Поскольку OP не удосужился указать язык/аромат, что очень важно здесь, после того, как его попросили и более одного дня, я голосую за закрытие как не настоящий вопрос. –

ответ

4

Если ваш язык регулярного выражения поддерживает отрицательный внешний вид, вы можете использовать (?<!blood)sugar для обработки дела без особых проблем. В зависимости от языка вы можете добавить флаг в регулярное выражение для обеспечения нечувствительности к регистру. Это позволит вам найти все случаи вашего состояния, используя любую странную комбинацию букв верхнего и нижнего регистра. Я использовал ваш пример для тестирования here.

Регулярное выражение, отрицательный внешний вид позади (?<!blood) строки, которую вы ищете sugar. Это будет соответствовать вашей строке, только если ей НЕ предшествует blood. Пробел не нужно возвращать с совпадением, поэтому он включен как часть внешнего вида, а не до suguar.

0

Вам не нужны регулярные выражения для этого. Найдите и замените «уровень сахара в крови» на «sex magik». Тогда вы можете просто поискать «сахар».

+0

лучший поиск и замена .... когда-либо! – Walls

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