列表我試圖在:,"{[ }]
一個字符串分割成一個列表的基礎這是我的代碼,字符串分割爲Java中
List<String> list = new ArrayList<String>(Arrays.asList(line.split("{ | } | \\"| : | [ | ]|,")));
這是沒有編制。我並不擅長正則表達式。請任何幫助。
列表我試圖在:,"{[ }]
一個字符串分割成一個列表的基礎這是我的代碼,字符串分割爲Java中
List<String> list = new ArrayList<String>(Arrays.asList(line.split("{ | } | \\"| : | [ | ]|,")));
這是沒有編制。我並不擅長正則表達式。請任何幫助。
你的意思是你想它分裂 「每當你看到:或者,或」?或{或[或}或者]「如果是這樣的,你真的不需要說遠不止:在下面的字符類定義的任何字符
.split("[:,\"{\\[ }\\]]")
即「分裂::,"{[ }]
「,在那裏我們使用標準的正則表達式字符類定義語法([...]
)和適當的轉義。
通常情況下,這意味着一個正則表達式,看起來像/[:,"{\[ }\]]/
而是因爲你在寫內部正常的字符串一個正則表達式,需要更多的轉義:"
需要定期串溢出,使得您的字符串不會過早結束(使變成\"
),並且[
和]
是正則表達式中的活動字符,所以他們在之前需要\
在正則表達式中。但是,我們不能只將\
放在字符串中並使其工作,因爲\
是轉義字符,所以我們需要「轉義轉義」,這意味着使用\\
(給出\\[
和\\]
)。
String[] result = "a:b,c\"d{e[f g}h]i".split("[:,\"{\\[ }\\]]");
System.out.print(result.length);
// => result has 9 elements in it, ['a',...,'i']
這不是編譯,因爲你沒有逃過引號,而是反斜槓本身。
變化:
\\"
要:
\"
的可能的複製[如何將字符串轉換成一個ArrayList?](http://stackoverflow.com/questions/7347856/how-to-convert-a-string-into-an-arraylist) – lmiguelvargasf
你想分裂一個JSON字符串? –
@lmiguelvargasf我可以轉換字符串,如果分隔符只是1個逗號,但不是在這種情況下,因此問題。 –