如何匹配2个指定字符之间的所有字符,例如" "
- >
来自sdfsf " 12asdf " sdf
我想只获得12asdf
。
答案 0 :(得分:71)
您可以使用以下模式获取" "
之间的所有内容,包括前导和尾随空格:
"(.*?)"
或
"([^"]*)"
如果你想捕捉“”之间的所有内容,不包括前导和尾随空格,你可以这样做:
"\s*(.*?)\s*"
或
"\s*([^"]*)\s*"
答案 1 :(得分:6)
我建议你使用
(?<=")(?:\\.|[^"\\])*(?=")
这只会匹配引号之间的内容(不是引号本身),也会正确处理字符串中的转义引号。
因此,在"She said, \"Hi!\""
中,它将匹配She said, \"Hi!\"
。
如果您使用的是JavaScript或Ruby(未提及),因此无法使用lookbehind,请使用
"((?:\\.|[^"\\])*)"
并与捕获组合作。 1。
答案 2 :(得分:0)
您可以使用preg_match(/"([^"]*)"/,$input,$matches);
。 $matches[1]
会有你想要的东西。
答案 3 :(得分:0)
[^"].*[^"]
如果你输入:&#34; Elie&#34;,它会给Elie(注:没有引号)