Есть два способа решить эту проблему, в зависимости от того, что вы хотите делать с выходом.
Сначала сопоставьте (но не фиксируйте) текст в кавычках. (Это , в частности , соответствующая тому, что вам НЕ нужно.) Используя трубу |
, используйте группы захвата, чтобы выбрать все, что вы хотите сохранить.
Пример :
".*?"|(\b\S+\b)
Вы можете увидеть пример этого здесь .
Другой вариант, используя look-arounds, - это специально оглянуться назад начало слов, чтобы убедиться, что "
не появляется там:
(?<!")(\b\S+\b)(?!")
Вы можете видеть, что здесь .
Это может иметь проблема при запуске нескольких слов, но это должно привести вас к правильному пути, и вы можете указать, работает ли один из этих методов лучше для вас, чем другой.
\"
. При желании, если вы хотите разрешить '.' для размещения нескольких строк добавьте флагs
(рядом с флагамиgm
). Вы можете увидеть его в действии на этой странице regex101. – OnlineCop 13 April 2015 в 18:57