bugfix> regex > 投稿

文字列を分割しようとしていますクロージャー 「 Hello|World 「ただし、分割メソッド「 (clojure.string/split x #"|") 」を使用する場合 「私は奇妙な結果を得る、私はこの "[h e l l o | w o r l d]" を得る 。なぜこれを行うのか、それを分割して [hello world] を得るにはどうすればよいですか? ?

回答 1 件
  • 答えは次のとおりです。

    (str/split "Hello|World" #"|")  => ["H" "e" "l" "l" "o" "|" "W" "o" "r" "l" "d"]
    (str/split "Hello World" #" ")  => ["Hello" "World"]
    (str/split "Hello|World" #"\|") => ["Hello" "World"]
    
    

    正規表現では、 |  文字は特殊であり、バックスラッシュ \ でエスケープする必要があります 。

    ザ・ |  文字は正規表現の論理演算子であり、通常は「abc | def」のように「or」を意味するために使用されます。

    (str/split "Hello|World" #"e|o") => ["H" "ll" "|W" "rld"]
    
    

    他に何も存在しなかったため、「何かまたは何か」として解釈されたようで、各文字間の境界に一致しました。

    詳細については、Javaドキュメントを参照してください。

あなたの答え