私は次のように分割しようとしています:TwitterHashtagIsVeryCOMPLICATED
次のように分割された後の文字列:Twitter Hashtag Is Very COMPLICATED
それを行うために正規表現を使用できますか?
アドバイスをありがとうございました。
これはうまくいくはずです:
str.split("(?<=[a-z])(?=[A-Z])")
アイデアは、小文字には長さゼロの後読みを使用し、大文字には長さゼロの先読みを使用することです。この構文は、キャメル ケース文字列の「単語区切り」でのみ一致します。
これはideoneのデモです。
dasblinkenlightの回答に強く触発された編集(そのための+1)。ここでは、Unicode サポートのために Unicode カテゴリにのみ変更します。
String test = "TwitterHashtagIsVeryCOMPLICATED";
for (String splitted: test.split("(?<=\\p{Ll})(?=\\p{Lu})")) {
System.out.println(splitted);
}
出力:
Twitter
Hashtag
Is
Very
COMPLICATED