Java中如何移除除大括号{}外的所有标点符号?
解决方案
你可以修改正则表达式,只移除除大括号{}之外的标点符号,这样就能保留带大括号的关键字,同时清理其他附着在单词上的标点。
修改后的代码如下:
String keys = " Dear {User_Name}, your process..."; // 移除除{和}外的所有标点,再拆分字符串(用\\s+处理多空格情况) List<String> bodyContent = Arrays.asList( keys.replaceAll("[\\p{P}&&[^\\{\\}]]", "") .trim() // 去除首尾空格 .split("\\s+") // 按任意数量空格拆分,避免空元素 );
正则说明
[\\p{P}&&[^\\{\\}]] 是一个复合字符类:
\\p{P}匹配所有标点符号&&[^\\{\\}]表示排除{和}这两个字符- 整体作用是:只替换掉非大括号的标点,保留
{User_Name}这类关键字的完整格式
执行后,bodyContent的内容会是 ["Dear", "{User_Name}", "your", "process"],完全符合你的需求。
内容的提问来源于stack exchange,提问作者Mick
相关产品推荐
相关产品推荐

