我試圖分裂,如:Twitter Hashtag Is Very COMPLICATED
正則表達式用大寫分割字符串和lowercharacter
我可以用正則表達式來做到這一點:TwitterHashtagIsVeryCOMPLICATED
的字符串被splited等之後?
非常感謝您的建議。
我試圖分裂,如:Twitter Hashtag Is Very COMPLICATED
正則表達式用大寫分割字符串和lowercharacter
我可以用正則表達式來做到這一點:TwitterHashtagIsVeryCOMPLICATED
的字符串被splited等之後?
非常感謝您的建議。
這應該工作:
str.split("(?<=[a-z])(?=[A-Z])")
的想法是使用零長度的回顧後小寫字母和大寫字母長度爲零的前瞻。這種構造只會在駱駝情況下的字符串中匹配。
完美的ASCII解決方案;)我不知道推特這麼多,你可以使用除了ASCII字母在推特「ID」以外的其他東西? – fge
@dasblinkenlight非常感謝。它的工作原理和演示非常直觀。 –
編輯通過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
謝謝@Mena,它的作品 –
@HoaVu歡迎您。正如fge提到的,我不確定是否Unicode字符在散列標籤中完全受支持。如果是,則可以考慮使用Unicode類別,而不是小寫/大寫ASCII字符類。 – Mena
謝謝。你能告訴我任何可以學習正則表達式的文檔和測試它的工具,所以我可以自己掌握正則表達式,而不是在這裏張貼這麼多:)。 –
你可以嘗試什麼? –
可能重複[正則表達式分割camelCase或TitleCase(高級)](http://stackoverflow.com/q/7593969/1578604)。 – Jerry