2

私は次のように分割しようとしています:TwitterHashtagIsVeryCOMPLICATED

次のように分割された後の文字列:Twitter Hashtag Is Very COMPLICATED

それを行うために正規表現を使用できますか?

アドバイスをありがとうございました。

4

2 に答える 2

5

これはうまくいくはずです:

str.split("(?<=[a-z])(?=[A-Z])")

アイデアは、小文字には長さゼロの後読みを使用し、大文字には長さゼロの先読みを使用することです。この構文は、キャメル ケース文字列の「単語区切り」でのみ一致します。

これはideoneのデモです。

于 2013-07-07T12:53:35.577 に答える
2

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
于 2013-07-07T12:58:36.983 に答える