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

我正在尝试下面的代码:

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

我正在等待 get "x y",但它返回了"x x#"。有什么解决办法?


临摹微笑
浏览 109回答 1
1回答

HUWWW

根据您编辑的问题,您想用单词边界进行替换。您可以使用此代码来修复: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");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java