6

私はこのスレッドを見つけ、その上のユーザーの 1 人が次のコード行を投稿しました。

String[] digits2 = number.split("(?<=.)");

このコードの意味を解読するために、 12のような情報源をいくつか調べましたが、わかりません。split() メソッドの引数の意味を説明できる人はいますか?

編集:私と同じ質問がある人には、別の役立つリンクがあります

4

2 に答える 2

4

これは肯定的な後読みです。全体的な表現は、「任意の文字の後、何もキャプチャしない」ことを意味します。基本的に、文字列が次のように見える場合

ABC

|その場合、文字間の ,で一致が発生します。

A|B|C|
于 2013-05-20T02:06:03.067 に答える
1

.split("")(空の文字列/パターン) は、正規表現の先頭にある空の文字列と一致します。これは望ましくない追加の空の文字列です。 (?<=.)ゼロ幅のアサーション (文字を消費しない) で、ゼロ幅のスペースの後に任意の文字が続きます (後読みであるため、 が続きます)。これは、各文字間の空の文字列で分割されますが、最初の文字と文字列の先頭の間の空白では分割されません。

于 2013-05-20T02:07:10.027 に答える