为了账号安全,请及时绑定邮箱和手机立即绑定

如何处理正则表达式中的字符“#”?

如何处理正则表达式中的字符“#”?

临摹微笑 2023-03-31 15:27:06
我正在尝试下面的代码:String txt = "D D#"; String txt2 = txt.replaceAll("\\bD\\b", "x").replaceAll("\\bD#\\b", "y");我正在等待 get "x y",但它返回了"x x#"。有什么解决办法?
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

根据您编辑的问题,您想用单词边界进行替换。


您可以使用此代码来修复:


String txt = "D D#";

String txt2 = txt.replaceAll("\\bD#", "y").replaceAll("\\bD\\b", "x");

//=> "x y"

注意变化:


在用with替换所有单词的.replaceAll("\\bD#", "y")other 之前调用。replaceAllDx

\\b由于#在非单词字符之后不匹配单词边界,因此不使用单词边界。\b被断言的(^\w|\w$|\W\w|\w\W)位置。

另请注意,您还可以使用replaceFirst代替replaceAll并将代码保留为:


String txt2 = txt.replaceFirst("\\bD\\b", "x").replaceFirst("\\bD#", "y");


查看完整回答
反对 回复 2023-03-31
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信