Мне понравилось решение Eugen Mihailescu , чтобы соответствовать контенту между кавычками, позволяя избежать кавычек. Однако я обнаружил некоторые проблемы с экранированием и придумал следующее регулярное выражение, чтобы исправить их:
(['"])(?:(?!\1|\\).|\\.)*\1
Он делает трюк и все еще довольно прост и удобен в обслуживании.
Демо (с некоторыми более тестовыми примерами, не стесняйтесь использовать его и расширять).
PS: Если вам просто нужен контент между кавычки в полном совпадении ($0
) и не боятся штрафа за производительность, используйте:
(?<=(['"])\b)(?:(?!\1|\\).|\\.)*(?=\1)
PPS: Если ваша фокусировка зависит исключительно от эффективности, перейдите к Решение Казимира и Ипполита ; это хороший.