正则表达式找到“”之间的字符

时间:2010-03-08 16:24:51

标签: regex

如何匹配2个指定字符之间的所有字符,例如" " - > 来自sdfsf " 12asdf " sdf

我想只获得12asdf

4 个答案:

答案 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(注:没有引号)