所以,我想用一个&
替换以下字符串中的所有&
。这些&
可以由一个或多个space
分隔。我有一个示例输入字符串和我所拥有的代码片段。
输入字符串:
a& & &&& & b
这是我到目前为止所拥有的:
String foo = "a& & &&& & b".replaceAll("(\\s*&+\\s*&\\s*)", "&");
System.out.println(foo); // prints: "a&&b"
// expected: "a&b"
我不确定为什么两个&
会在结果中结束。
任何hlep都将不胜感激。谢谢!
答案 0 :(得分:3)
为什么要让它变得比它需要的更复杂
"(\\s*&)+\\s*"
一个或多个(&
前面有零个或多个空格的序列)后跟零个或多个空格
答案 1 :(得分:1)
尝试:String foo = "a& & &&& & b".replaceAll("(\\s*&[\\s&]*)", "&");