Java:帮助RegEx

时间:2011-06-16 21:30:14

标签: java regex


所以,我想用一个&替换以下字符串中的所有&。这些&可以由一个或多个space分隔。我有一个示例输入字符串和我所拥有的代码片段。

输入字符串:

a&   &    &&&  & b  


这是我到目前为止所拥有的:

String foo = "a&   &    &&& & b".replaceAll("(\\s*&+\\s*&\\s*)", "&");
System.out.println(foo); // prints: "a&&b"
                         // expected: "a&b"

我不确定为什么两个&会在结果中结束。

任何hlep都将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:3)

为什么要让它变得比它需要的更复杂

"(\\s*&)+\\s*"

一个或多个(&前面有零个或多个空格的序列)后跟零个或多个空格

答案 1 :(得分:1)

尝试:String foo = "a& & &&& & b".replaceAll("(\\s*&[\\s&]*)", "&");