Как я могу соответствовать всем символам между 2 указанными символами, сказать " "
-> от sdfsf " 12asdf " sdf
Я хочу добраться 12asdf
только.
Вы можете использовать следующий шаблон, чтобы получить все между " "
, включая передние и задние пробелы:
"(.*?)"
или
"([^"]*)"
Если вы хотите получить все между " ", исключая передние и задние пробелы, вы можете сделать:
"\s*(.*?)\s*"
или
"\s*([^"]*)\s*"
Я предлагаю вам использовать
(?<=")(?:\\.|[^"\\])*(?=")
Это будет соответствовать только тому, что находится между кавычками (не самим кавычкам), а также правильно обрабатывать заключенные кавычки внутри вашей строки.
Так в "Она сказала, \"Привет!\""
, он будет соответствовать Она сказала, \"Привет!\""
.
Если вы используете JavaScript или Ruby (о чем вы не упомянули) и поэтому не можете использовать lookbehind, используйте
"((?:\\.|[^"\\])*)"
и работайте с группой захвата №1.
Вы можете использовать preg_match(/"([^"]*)"/,$input,$matches);
. $matches[1]
будет иметь то, что вы хотите.