我试图取代'。'两个不是数字符号之间。我使用了replaceAll和regEx
string.replaceAll("\\D\\.\\D", "_");
但它正在改变和附近的符号。'我可以用Java方法解决这个问题,还是应该编写自己的方法?
答案 0 :(得分:1)
这可能适合你:
yourString.replaceAll("(\\D)[.](\\D)","$1$2");
答案 1 :(得分:0)
使用这样的正则表达式:
(?<=\D)(\.)(?=\D)
您的问题是:\ D部分也将被选中。
示例:
System.out.println("1.1".replaceAll("(?<=\\D)(\\.)(?=\\D)", "")); // output : 1.1
System.out.println("a.b".replaceAll("(?<=\\D)(\\.)(?=\\D)", "")); // output : ab
答案 2 :(得分:0)
目前,在模式AB.CD
之外,这将返回A.D
,已匹配并替换了.
(B
和{C
两侧的仅1个字符。 {1}})
这就是我认为你正在努力的目标:
string.replaceAll("[^0-9]+\\.[^0-9]+", ".");
但我从你的描述中不清楚你想要实现的目标。