我想保留部分数字,但要删除字符串中的完整数字。
public static void main(String[] args){
String testString = "I walked 2 miles in 4 hour. I went to K2. I have 2000 Rupes only. This is 2.4.";
testString = testString.replaceAll("[0.0-9.9]", "");
System.out.println(testString);
}
这给了我以下结果
"我走了几英里,我去了K我只有Rupes这是"
但我想保留部分数字(如K2)。只想删除完整的数字(2,4等)。此外,我想保持句号,但想删除小数点数(2.4等)。
我想要这些结果。
"我在一小时内走了几英里。我去了K2。我只有Rupes。这是。"
什么应该是正确的正则表达式?
我会感激你的。
答案 0 :(得分:1)
尝试:
(?<![a-zA-Z])\d+(\.\d+)?(?![a-zA-Z])
for Java:(?<![a-zA-Z])\\d+(\\.\\d+)?(?![a-zA-Z])
其中:
(?<![a-zA-Z])
- 负面的背后,搜索字母\d+(\.\d+)?
- 数字(?![a-zA-Z])
- 否定前瞻,搜寻字母否定lookarouds在替换子字符串之前检查efter数字之前是否没有字母