ich auf eine Methode kam wie:Warum brauchen Sie diese Zeichen in der Regex in dieser Elixir Regex-Übereinstimmung?
@spec split_words(String.t) :: [String.t]
defp split_words(text) do
Regex.scan ~r/(*UTF)[\p{L}0-9-]+/i, text
end
Es ist wirklich den folgenden Test zu können passieren:
test "German" do
expected = %{"götterfunken" => 1, "schöner" => 1, "freude" => 1}
assert Words.count("Freude schöner Götterfunken") == expected
end
Was (*UTF)
ist - ist das Elixier spezifisch oder ein regulärer Ausdruck Konzept? Ich schätze, es ist die Zeichenfolge in UTF-Codierung zu "werfen". Und was ist mit \p{L}
- ist das ein "Expander" irgendeiner Art, um Sie wissen zu lassen, ein Alphabet zu verwenden, das den Umlaut-Charakter enthält?
Ich sah es in diesem Repository: https://github.com/alxndr/exercism/blob/master/elixir/word-count/word_count.exs#L25
Hinweis: regex101.com sagt (* UTF) und (* UTF8) unbekannt sind Verben, also würde ich denke, es ist spezifisch für diese regex Geschmack, und nicht alle PCRE Aromen – Laurel
regex101 doesn 't support '(* UTF)' und '(* UTF8)', das ist alles. Es ist eine PCRE-Funktion. –
Nun, heute habe ich 2 regex101 Bugs entdeckt .... – Laurel