Java字符串:替换所有指定字符及其后任意字符的实现方法
解决方法
在Java中,String.replaceAll()方法支持正则表达式匹配,刚好可以实现你的需求:匹配所有§字符及其紧随的任意单个字符,然后替换为空字符串。
基础实现代码
String original = "§a§b Text"; String processed = original.replaceAll("§.", ""); // 执行后processed的值为 " Text"
正则表达式说明
§:匹配字面量的§字符(该字符不属于正则元字符,无需转义).:匹配任意单个字符(默认不包含换行符)
如果你的字符串存在§位于行尾(后面无字符),或者需要匹配换行符后的字符,可以启用DOTALL模式,让.匹配包括换行在内的所有字符,写法如下:
String processed = original.replaceAll("(?s)§.", "");
这里的(?s)是正则内联标志,开启后.会匹配所有字符,包括换行。
如果需要处理单独的§(即§后面没有字符的情况也要去掉),可以把后面的字符设为可选:
String processed = original.replaceAll("§.?", "");
?表示前面的匹配项(这里是.匹配的任意字符)可以出现0次或1次,这样单独的§也会被替换掉。
内容的提问来源于stack exchange,提问作者Programmer
相关产品推荐
相关产品推荐

