Регулярное выражение для соответствия не началу / концу строки - PullRequest
1 голос
/ 19 мая 2011

Я бы хотел, чтобы регулярное выражение совпадало только с "этим

  • не указывайте в начале строки или после пробела в начале строки
  • не указывайте в конце строки или перед пробелом в конце строки

Полагаю, мне нужно использовать lookbehind и lookahead.

Так совпадает с "в

zfgjhsgaf jhsa gd " gjhygf" hgf

но не в

"gjhgjkgjhgjhgkk"

      "dfsdfsdf"   

Ответы [ 5 ]

2 голосов
/ 19 мая 2011

Для Eclipse попробуйте найти по этому регулярному выражению:

(?<!^\s*)"(?!\s*$)

И заменить на:

\"
0 голосов
/ 19 мая 2011

Я думаю, что это достаточно выразительно:

^\s*\S+.*innertext.*\S+\s*$
0 голосов
/ 19 мая 2011
^\s*"?.*\S.*(").*?\S.*?"?\s*$

, который поддерживает соответствующий '' foo 'bar' ', предполагая, что это то, что вы хотите найти.

О, и это соответствует, только если $ 1 установлен

0 голосов
/ 19 мая 2011

Смотрите это здесь

(?<!^)"(?!\s*$)

в Regexr

Работает не для пробелов после начала строки. Как упоминалось в BoltClock, просмотр переменной длины поддерживается только несколькими двигателями (я знаю только .net).

Если вы используете регулярное выражение, поддерживающее его, вы можете использовать

(?<!^.*)"(?!\s*$)

Хорошая документация для просмотра вперед / назад находится здесь в perldoc.perl.org / perlretut.html # Взгляд вперед и взгляд назад

0 голосов
/ 19 мая 2011

Это должно работать

^\s*[^"].*".*[^"]\s*$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...