java如何处理正则表达式中的字符“#”?
我正在尝试下面的代码:
String txt = "D D#";
String txt2 = txt.replaceAll("\\bD\\b", "x").replaceAll("\\bD#\\b", "y");
我正在等待获取"x y"
,但它返回"x x#"
。解决办法是什么
你可以在下面搜索框中键入要查询的问题!
我正在尝试下面的代码:
String txt = "D D#";
String txt2 = txt.replaceAll("\\bD\\b", "x").replaceAll("\\bD#\\b", "y");
我正在等待获取"x y"
,但它返回"x x#"
。解决办法是什么
# 1 楼答案
根据您编辑的问题,您希望用单词边界进行替换
您可以使用此代码修复:
请注意以下变化:
replaceAll
之前调用.replaceAll("\\bD#", "y")
,将所有单词替换为D
和x
李>#
之后不使用单词边界\\b
,因为单词边界在非单词字符之后不匹配^为(^\w|\w$|\W\w|\w\W)
位置断言{还请注意,您也可以使用
replaceFirst
而不是replaceAll
,并将代码保留为: