You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用一行代码移除字符串中未知位置的指定单词及关联逗号?

用正则一行代码移除逗号分隔字符串中的指定单词

先看你的示例字符串:

String str = "Tom,Jerry,Brady,Patriots,TempaBay";

完全可以用正则表达式实现一行移除指定单词,不管它在开头、中间还是结尾,直接处理掉对应的逗号和单词组合:

核心实现代码

假设要移除的目标单词是targetWord,可以这样写:

str = str.replaceAll("^" + Pattern.quote(targetWord) + ",|," + Pattern.quote(targetWord) + "$|," + Pattern.quote(targetWord) + ",", "");

具体示例

  1. 移除开头的Tom:
String str = "Tom,Jerry,Brady,Patriots,TempaBay";
str = str.replaceAll("^Tom,|,Tom$|,Tom,", "");
// 结果:Jerry,Brady,Patriots,TempaBay
  1. 移除中间的Jerry:
str = str.replaceAll("^Jerry,|,Jerry$|,Jerry,", "");
// 结果:Tom,Brady,Patriots,TempaBay
  1. 移除结尾的TempaBay:
str = str.replaceAll("^TempaBay,|,TempaBay$|,TempaBay,", "");
// 结果:Tom,Jerry,Brady,Patriots

正则逻辑说明

  • ^Tom,:匹配字符串开头的Tom,(对应单词在首位的情况)
  • ,Tom$:匹配字符串结尾的,Tom(对应单词在末位的情况)
  • ,Tom,:匹配中间的,Tom,(对应单词在中间的情况)
  • 用|把三种情况组合,替换为空字符串就完成了移除
  • 加入Pattern.quote(targetWord)是为了避免目标单词包含正则特殊字符(比如.、*)时出错,让正则把单词当作普通文本处理

这样就不用像你之前那样先替换再截字符串,一行代码就能搞定所有位置的单词移除。

内容的提问来源于stack exchange,提问作者Nicholas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 17:52:39