2016-09-19 2 views
0

なぜclojure.string/replace\"[^\"]+\"パターンと一致しないのですが、re-seqはどうしてですか?clojure.string/replaceがre-seqでマッチしたパターンと一致しない

(re-seq #"\"[^\"]+\"" "ab,\"helo,bro\",yo") 
=> ("\"helo,bro\"")  

(clojure.string/replace "ab,\"helo,bro\",yo" #"\"[^\"]+\”" "") 
=> "ab,\"helo,bro\",yo" 

replaceは、一致するパターンを削除すると思われます。私はここで何が欠けていますか?

洞察力ありがとうございます。

答えて

2

あなたの正規表現は(おそらく意図的に)異なっています:replaceオプションでは、\"の代わりに\”を使用しました。あなたはまったく同じ正規表現を使用している場合

それが期待どおりに動作します:

(def r #"\"[^\"]+\"") 

(re-seq r "ab,\"helo,bro\",yo") 
=> ("\"helo,bro\"") 

(clojure.string/replace "ab,\"helo,bro\",yo" r "") 
=> "ab,,yo" 
関連する問題