私は正規表現を学んでいて、私はグリップを始めていたと思っていました。しかし、その後... 正規表現 w w *を使用して文字列を分割しますか? w +?
私は、文字列を分割しようとしたとして、私はそのような単純なことを理解するのに役立つ必要があります。String input = "abcde";
System.out.println("[a-z] " + Arrays.toString(input.split("[a-z]")));
System.out.println("\\w " + Arrays.toString(input.split("\\w")));
System.out.println("\\w*? " + Arrays.toString(input.split("\\w*?")));
System.out.println("\\w+? " + Arrays.toString(input.split("\\w+?")));
The output is
[a-z] - []
\w - []
\w*? - [, a, b, c, d, e]
\w+? - []
はなぜ2つの最初の行のいずれかが任意の文字で文字列を分割しません。 ? 3番目の式\ w *?(疑問符が貪欲を防ぐ)は、期待どおりに動作し、文字列ごとに文字列を分割します。星の0個以上の一致は、空の配列を返します。
は私がメモ帳内++プログラム内での発現を試みたし、それがでて5試合を示しています。あなたは正規表現で文字列を分割した場合、基本的に、これは本当に私
あなたがJavaで正規表現の宿題を割り当てられているとは思えません。\\ dd \\ oo \\ uu \\ bb \\ ll \\ ee \\ \\ bb \\ aa \\ cc \\ kk \\ ss \\ ll \\ aa \\ ss \\ hh \\ ee \\ ss !!どのような拷問!さらに、正規表現の構文やデバッグなどのコンパイル時のチェックもしていません。Javaはこの種の作業にはあまり便利ではありません。 regexの作業をより同情的な言語で開発し、最終結果をJavaに転送する必要があります。 – tchrist
@tchristあなたはどのような言語について考えていますか? – Kennet
sedやawkのようなシェルツールに加えて、PerlとRubyは第一級の正規表現を持っています。そしてPythonでさえ二重バックスラッシュをスキップできます。 Perlは正規表現デバッガを持つ唯一のものです。 – tchrist