我怎麼能匹配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