我目前在java中有以下字符串:
"Blah, blah, blah,~Part One, Part Two~,blah blah"
Run Code Online (Sandbox Code Playgroud)
我需要删除~字符之间的逗号,以便读取.
"Blah, blah, blah,~Part One Part Two~,blah blah"
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?
非常感谢,
String[] tests = {
"a,b,c,d,e,f",
"a,b,~c~,d,e",
"~a,b,c,d,e~",
"a,b,c,~d,e,f~,g,h,i,~j,k,l,~m,n,o~,q,r,~s,t,u",
};
for (String test : tests) {
System.out.println(
test.replaceAll(
"(^[^~]*~)|([^~]*$)|([^,~]*),|([^,~]*~[^~]*~)",
"$1$2$3$4"
)
);
}
Run Code Online (Sandbox Code Playgroud)
以上打印:
a,b,c,d,e,f
a,b,~c~,d,e
~abcde~
a,b,c,~def~,g,h,i,~jkl~m,n,o~qr~s,t,u
Run Code Online (Sandbox Code Playgroud)
有4种情况:
~,所以下次我们将"在里面"(^[^~]*~)~直到字符串的结尾
~,我们将"在外面"([^~]*$)~(所以我们仍然"在里面")
([^,~]*),(不要捕捉逗号!)~而不是逗号,那就出去吧,然后再回到下一个~
([^,~]*~[^~]*~)在所有情况下,我们确保捕获足以重建字符串.