現在、文字列を複数行の文字列にスプライスしようとしています。 正規表現は、前に13文字の空白を選択する必要があります。空白文字列を分割する
問題は、前の選択された空白の後に13文字カウントがリセットされないことです。したがって、最初の13文字の後に、正規表現はすべての空白を選択します。
私はpositive look-behind
13の文字と、次の正規表現を使用しています:
(?<=.{13})
(末尾の空白がある)
あなたが正規表現here、次のコードをテストすることができます。
import java.util.ArrayList;
public class HelloWorld{
public static void main(String []args){
String str = "This is a test. The app should break this string in substring on whitespaces after 13 characters";
for (String string : str.split("(?<=.{13}) ")) {
System.out.println(string);
}
}
}
次のように、このコードの出力である:
サブこれはテストです。
アプリ
は
13後の文字
上の空白で
ブレーク
この
文字列
べき
ただし、次のようになります。
これはテストです。
13後
空白の部分文字列で
アプリがなければならない
ブレークこの文字列
文字
ありがとう。私は文字列を一致させることを考えず、このようなマッチンググループを使用しました。私はそれらを選択したいときに常にマッチングするグループと闘う。あなたの答えをあまりにも早く読むので、前のコメントを削除しました。 – Seblor
さて、あなたは、一致パターン全体が置換パターンで '$ 0 'で逆参照できるとは思わないと思います。 –
正確です。私は通常、正規表現をメールアドレス、数字などにマッチさせるためにのみ使用します(Javaではありません)。 – Seblor