2
では動作しません。 /,\s*,/u
はregex101で正常に動作します。Unicodeの正規表現は、私が一致したい次の文字列を持っているClojureの
しかし#"(?u),\s*,"
はClojureのでは動作しません:
(re-find #"(?u),\s*," "Ambrosia,Restore Health, , , ") ;nil, should be , ,
これはなぜ失敗するのか?
では動作しません。 /,\s*,/u
はregex101で正常に動作します。Unicodeの正規表現は、私が一致したい次の文字列を持っているClojureの
しかし#"(?u),\s*,"
はClojureのでは動作しません:
(re-find #"(?u),\s*," "Ambrosia,Restore Health, , , ") ;nil, should be , ,
これはなぜ失敗するのか?
\s
は、6つのASCII文字と6つのASCII文字のみと一致します:the documentation for Pattern
を参照してください。
すでにわかっているように、\h
や\v
のような他の空白文字クラスを試してみる価値があります。
また、\p{...}
コンストラクトは実際のUnicodeプロパティマッチングを行うことができます。 White_Space
が最も有望なようです。
これは私のために '"、、 "'を返します。 –
'\ s'は6つのASCII文字と6つのASCII文字だけと一致します。 [documentation](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#predef)を参照してください。 – glts
@TimPoteは、ブラウザへのコピー貼り付けの制限があると考えていますが、元の文字列はまだ元の文字列に戻っていません。 –