嗨我有字符串,可能是这样的:
%a%%%%%bc%%%d%
Run Code Online (Sandbox Code Playgroud)
我需要在字符串的开头和结尾用""替换第一个%和最后一个%.此外,我需要为每个字符串序列组替换除第一个之外的所有%+.
结果应该是这样的:
a%bc%d
Run Code Online (Sandbox Code Playgroud)
我怎么能用正则表达式?我试过这样的事情:.*?%(\W+)%但是没有用
谢谢.
你可以用
.replaceAll("^%|%$|(%)+", "$1")
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
细节:
^%- %匹配字符串的开头| - 要么 %$- %字符串末端的a| - 要么(%)+- 重复捕获组匹配1+个%符号,但%每次迭代时只捕获一个到组1中,之后,$1对该组的反向引用将多个%字符替换为1 %.