Java Language
文字列を固定長部分に分割する
サーチ…
備考
ここでの目標はコンテンツを失うことではないため、正規表現は入力を消費(一致)してはいけません。むしろ前のターゲット入力の最後の文字と次のターゲット入力の最初の文字との間で一致しなければなりません。例えば8文字の部分文字列の場合、以下の場所に入力を上げる(つまり一致させる)必要があります。
a b c d e f g h i j k l m n o p q r s t u v w x y z
^ ^ ^
文字の位置の間に表示する必要があった入力内のスペースを無視します。
文字列を既知の長さの部分文字列に分割する
トリックは正規表現\G
を使ってルック・バックを使うことです。これは "前のマッチの終わり"を意味します:
String[] parts = str.split("(?<=\\G.{8})");
正規表現は、最後のマッチの終了後に8文字にマッチします。この場合、マッチはゼロ幅であるため、より簡単に「最後のマッチの後に8文字」と言うことができます。
便利なことに、 \G
は入力の開始に初期化されるので、入力の最初の部分に対しても機能します。
文字列を可変長の部分文字列に分割する
既知の長さの例と同じですが、lengthをregexに挿入します:
int length = 5;
String[] parts = str.split("(?<=\\G.{" + length + "})");
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow