2013-05-14 5 views
1

Я хочу совместить строку, содержащую ';' и; должно быть между словами «bla; bla» будет соответствовать «bla», будет соответствовать также «bla. bla» или «bla;» не совместим.Регулярное выражение соответствует только если за ним следует что-то еще

другими словами; появляется, только если это не конец строки. Надеюсь, что было ясно, что я хотел: P

+2

Можете ли вы дать нам еще несколько примеров того, что будет соответствовать и не соответствовать, как а как вы пробовали? –

+0

На каком языке вы используете? Это важно, потому что у вас могут быть или нет негативные взгляды. –

+0

Просто используйте '; (?! $)', Если вам нужно сопоставить ';' не в конце строки/строки. –

ответ

3

Попробуйте это \w\s*?([;])(?=\s*?\w), который будет соответствовать всем ";" которые предшествуют и следуют белого пространства и характера слова

enter image description here

+0

Обратите внимание, что он хочет * исключить * другую пунктуацию ('" bla. Bla "или" bla; "не совпадать'), но хочет включить окружающие слова и пробелы. Это шаг в правильном направлении, но не совсем там. –

+1

исправлено регулярное выражение, чтобы исключить точку –

+0

Я думал о чем-то вроде: (?! $) Ведьма будет соответствовать любому; это не будет следовать концу строки. но произойдет, если их нет; вообще? это будет соответствовать? – tubu13

0

Вы можете использовать это:

[a-z]+(?:;[a-z]+)? 

если вы хотите больше, чем один или два слова, просто замените ? от *

(Примечание: эта модель не иметь дело с пробелами и случаями или некоторыми другими вещами Вы должны добавить их, если нужно.)