假設我想要通過空格字符或%20
字符串拆分字符串,應該如何編寫我的正則表達式?Java正則表達式使用不同的分隔符分割字符串
我嘗試了以下,但它沒有奏效。
String regex = "[\\s+, %20]";
String str1 = "abc%20xyz";
String str2 = "abc xyz";
str1.split(regex);
str2.split(regex);
該正則表達式在str1
上似乎不起作用。
假設我想要通過空格字符或%20
字符串拆分字符串,應該如何編寫我的正則表達式?Java正則表達式使用不同的分隔符分割字符串
我嘗試了以下,但它沒有奏效。
String regex = "[\\s+, %20]";
String str1 = "abc%20xyz";
String str2 = "abc xyz";
str1.split(regex);
str2.split(regex);
該正則表達式在str1
上似乎不起作用。
使用交替|
:如果要通過拆分
String regex = "(\\s|%20)";
:如果你想通過一個空格或一個 「%20」 分裂
String regex = "(?:\\s+|%20)+";
String regex = "(\\s{1}+|%20{1}+)";
在你的「{1} +」中,就像說我只想要一個或多個這些角色? –
不,「{1} +」就像說一遍,「++」是指一次或多次,例如。 '「abc%20%20%20xyz」.split(「([%20] ++)」)。length == 2;'but'「abc%20%20%20xyz」.split(「(%20+ )「)。length == 4;' –
嗯,這很有趣。謝謝你激發我的好奇心,我必須閱讀這個。 –
,試試這個至少一個空格或至少一個「%20」,然後試試這個:
String regex = "(\\s+|(%20)+)";
'?'是什麼意思? –
@OneTwoThree:'(?:...)'用於分組而不捕獲 –
等待,但這與我想要的不一樣。 (我相信這個正則表達式意味着被一個或多個'%20'分割,這不是我想要的。) –