2016-12-14 2 views
1

Текст: "I like to watch.","\"I like to watch.\"" Regular Expression, чтобы соответствовать любому между «»

Я хочу, чтобы разбить текст на «Я люблю смотреть» и "\" Мне нравится смотреть. \ ""

использовать "[\ w \ W] +?"

но получить "Я люблю смотреть.", "\",

Как правильно выражение?

+2

Почему бы не разделить его на ','? –

+0

@MuratK .: Вы не можете разделить с помощью ',' здесь. –

+0

текст может быть «Мне нравится смотреть». \ N \ t "\" Мне нравится смотреть. \ "" Или любую строку между "Мне нравится смотреть". и "\" Мне нравится смотреть. \ "" @ MuratK. – lsdoy

ответ

2

Вы должны использовать

"[^"\\]*(?:\\.[^"\\]*)*" 

См regex demo.

Деталь:

  • " - двойные кавычки
  • [^"\\]* - любые 0+ символы, кроме двойной кавычки и обратной косой черты
  • (?:\\.[^"\\]*)* - ноль или более последовательностей:
    • \\. - обратная косая черта и любой символ, отличный от разрыва строки char
    • [^"\\]* - любые 0+, кроме двойной кавычки и обратного косой черты
  • " символов - двойные кавычки
+0

'.' может быть заменен на' [\ s \ S] ', если модификатор DOTALL недоступен в вашем аромате regex. –

+0

wow, good job !!! – lsdoy

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