Java String 下的replaceAll

本文探讨了使用Java进行字符串操作时遇到的问题,特别是在关键词过滤及替换方面的挑战。通过对比两种正则表达式的写法,解释了如何准确地匹配并替换指定词汇。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在做一个关于关键词过滤以及替换的东西,发现正好Java下的String有相关的方法于是写下相关的代码:

                String target;
		String regex = "[\"TM\"|\"tm\"|\"吃shi\"|\"打不开\"|\"恶心\"|\"广告\"|\"黑屏\"|\"加好友\"|\"假的\"|\"垃圾\"|\"烂\"|\"麻痹\"|\"你妹\"|\"骗\"|\"山寨\"|\"闪退\"|\"屎\"|\"收费\"|\"他妈\"|\"它妈\"|\"差\"|\"要钱\"|\"滚\"|\"妈的\"|\"楼上\"|\"楼下\"|\"mb\"|\"md\"|\"渣\"|\"靠\"|\"卡\"|\"坑\"|\"贱\"|\"操\"|\"BUG\"|\"死\"|\"擦\"|\"卧槽\"|\"傻逼\"|\"异常\"|\"草\"|\"尼玛\"|\"卸载\"|\"骂\"|\"流氓\"|\"不要脸\"|\"盗版\"|\"亲爱的用户朋友\"|\"客服\"|\"360\"|\"激活\"|\"无语\"]+";;
		target = source.replaceAll(regex, "***");
		return target;

本以为上面的代码可以实现如下的功能:

1:source = “我们很好”  输出为:“我们很好” ,但事实输出为:我们很***

2:source="t"    输出为:“t”   , 但事实输出为:“***”;

总之,没有达到预期需求,将里面的整词进行了拆分, 暂时还没有弄明白原因,但网上查后发现将上述代码中的regex调整为:

	      String regex = "(?:TM|tm|吃shi|打不开|恶心|广告|黑屏|加好友|假的|垃圾|烂|麻痹|你妹|骗|山寨|闪退" +
				"|屎|收费|他妈|它妈|差|要钱|滚|妈的|楼上|楼下|mb|md|渣|靠|卡|坑|贱|操|BUG|死|擦|卧槽|傻逼|" +
				"异常|草|尼玛|卸载|骂|流氓|不要脸|盗版|亲爱的用户朋友|客服|360|激活|无语)";
便可实现将source中出现的 上述关键全部替换成***。

具体原因待解……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值