Подтвердить что ты не робот

Regex найти символы между ""

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

Я хочу получить только 12asdf.

4b9b3361

Ответ 1

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

"(.*?)"

или

"([^"]*)"

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

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

или

"\s*([^"]*)\s*"

Ответ 2

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

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

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

Итак, в "She said, \"Hi!\"" он будет соответствовать She said, \"Hi!\".

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

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

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

Ответ 3

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

Ответ 4

[^"].*[^"]

Если вы введете: "Elie", это даст Elie (примечание: без кавычек)