regex находят символы между “”

Как я могу соответствовать всем символам между 2 указанными символами, сказать " " -> от sdfsf " 12asdf " sdf

Я хочу добраться 12asdf только.

24
задан Burgi 12 May 2017 в 16:11
поделиться

3 ответа

Вы можете использовать следующий шаблон, чтобы получить все между " ", включая передние и задние пробелы:

"(.*?)"

или

"([^"]*)"

Если вы хотите получить все между " ", исключая передние и задние пробелы, вы можете сделать:

"\s*(.*?)\s*"

или

"\s*([^"]*)\s*"
72
ответ дан 28 November 2019 в 22:21
поделиться

Я предлагаю вам использовать

(?<=")(?:\\.|[^"\\])*(?=")

Это будет соответствовать только тому, что находится между кавычками (не самим кавычкам), а также правильно обрабатывать заключенные кавычки внутри вашей строки.

Так в "Она сказала, \"Привет!\"", он будет соответствовать Она сказала, \"Привет!\"".

Если вы используете JavaScript или Ruby (о чем вы не упомянули) и поэтому не можете использовать lookbehind, используйте

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

и работайте с группой захвата №1.

6
ответ дан 28 November 2019 в 22:21
поделиться

Вы можете использовать preg_match(/"([^"]*)"/,$input,$matches);. $matches[1] будет иметь то, что вы хотите.

0
ответ дан 28 November 2019 в 22:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: