Hi,
how can I match all characters between 2 characters, say " "
->
from sdfsf " 12asdf " sdf
I get only 12asdf
.
Thanks
Hi,
how can I match all characters between 2 characters, say " "
->
from sdfsf " 12asdf " sdf
I get only 12asdf
.
Thanks
You can the following to get everything between " "
, including the leading and trailing white spaces:
"(.*?)"
or
"([^"]*)"
If you want to capture everything between the " " excluding the leading and trailing white spaces you can do:
"\s*(.*?)\s*"
or
"\s*([^"]*)\s*"
You can use preg_match(/"([^"]*)"/,$input,$matches); $matches[1] will have what you want.
I suggest you use
(?<=")(?:\\.|[^"\\])*(?=")
This will match only what is between the quotes (not the quotes themselves) and also handle escaped quotes inside your string correctly.
So in "She said, \"Hi!\""
, it will match She said, \"Hi!\"
.
If you're using JavaScript or Ruby (which you didn't mention) and therefore can't use lookbehind, use
"((?:\\.|[^"\\])*)"
and work with the capturing group no. 1.