我怎么能匹配2个指定的字符之间的所有字符,说" "
- > 从sdfsf " 12asdf " sdf
正则表达式之间找到字符“”
我想只得到12asdf
。如果你想捕捉排除之间的“”一切
"(.*?)"
或
"([^"]*)"
:
我怎么能匹配2个指定的字符之间的所有字符,说" "
- > 从sdfsf " 12asdf " sdf
正则表达式之间找到字符“”
我想只得到12asdf
。如果你想捕捉排除之间的“”一切
"(.*?)"
或
"([^"]*)"
:
您可以使用以下模式" "
之间得到的一切,包括前端和后端空格您可以执行的前后空格:
"\s*(.*?)\s*"
或
"\s*([^"]*)\s*"
同意。确保查找任何可以在“非贪婪”(vs“贪婪”)表达式上找到的东西。如果你还不知道它应该是一个有趣的阅读。如果你知道其中的差异,它肯定会让你的生活更加容易。 – exhuma 2010-03-08 16:38:54
您可以使用preg_match(/"([^"]*)"/,$input,$matches);
。 $matches[1]
会有你想要的。
我建议你使用
(?<=")(?:\\.|[^"\\])*(?=")
这将只匹配什么是报价(不包括引号本身),并正确处理您的字符串内转义引号之间。
所以在"She said, \"Hi!\""
,它将匹配She said, \"Hi!\"
。
如果你正在使用JavaScript或Ruby(你没有提到),因此不能使用回顾后,使用
"((?:\\.|[^"\\])*)"
,并与捕获组的工作没有。 1.
这并没有处理我或本页上的转义引号https://regex101.com/ – Don 2016-02-11 01:00:52
@Don:你能否提供非工作正则表达式的链接(点击保存正则表达式并发布该链接)? – 2016-02-11 07:14:52
[^"].*[^"]
如果你输入:“埃利”,它会给埃利(注:不包括引号)
什么是你希望得到什么?它没有返回领先的空白吗?向我们展示您正在使用的正则表达式,并将示例结果放在代码块中。 – Robusto 2010-03-08 16:27:43