用于在java中匹配和删除字符串中的数字的Reg ex

用于在java中匹配和删除字符串中的数字的Reg ex,java,regex,Java,Regex,我希望删除字符串中包含的任何数字(带小数)。 对于Ex: 输入:“该游戏的平均评论分数为96.92%,Xbox 360版本为98/100。” 输出:-“该游戏在Xbox版本中获得了%和/或%的平均评论分数。” 我使用regex实现了这个。但是,我的语法也删除了字符串末尾的句点 代码: if(token.matches(".*\\d.*")) { String s7=token.replaceAll("[0-9,.]", ""); s7=s7.replaceAll("(

我希望删除字符串中包含的任何数字(带小数)。
对于Ex:
输入:“该游戏的平均评论分数为96.92%,Xbox 360版本为98/100。” 输出:-“该游戏在Xbox版本中获得了%和/或%的平均评论分数。”

我使用regex实现了这个。但是,我的语法也删除了字符串末尾的句点

代码:

if(token.matches(".*\\d.*"))  {  
    String s7=token.replaceAll("[0-9,.]", "");  
    s7=s7.replaceAll("( )+", " ");  
    stream.set(s7);  
}

尝试使用正则表达式:

\b\d+([.,]\d+)*\b
有关此正则表达式的解释,请参见*%5Cb

e、 g:

请尝试此正则表达式
(\d| \.)+
,它将匹配数字(包括小数点),然后将匹配的组替换为“”

试试这个

 String str="The game received average review scores of 96.92% and 98/100 for the Xbox 360 version";
            Pattern pattern = Pattern.compile("(\d|\.|,)+");
    Matcher matcher = pattern.matcher(str);
    while (matcher.find()) {
        str=str.replace(matcher.group(),"");
    }

这是可行的,但如果文本中有类似123456的数字,我也需要删除该逗号。请尝试使用“\\b\\d+(\\.\\d+)?\\b(\\s*,)?”。您也可以将代码缩短为输入。replaceAll(“\\b\\d+(\\.\\d+)?\\b(\\s*,)?,”)@Vin我在regex中添加了
。如果数字之间有“,”我也需要删除。与123456.00->123456.00中的情况不同吗?如果是,则尝试此操作,将正则表达式更改为
(\d| \.\124;,)+
,然后在循环中执行此操作
str=str.replace(matcher.group(),matcher.group().replace(“,”)否,这与前面的情况相同。我的案例需要在前面的语法中添加逗号。你说你想删除所有数字,对吗?那为什么123456.00->123456.00?如果字符串为“abc 123456.00 def”,您是否尝试获取“abc def”,如果是,请简单地将正则表达式替换为
(\d| \.\124;,)+
,不要更改循环中的任何内容
 String str="The game received average review scores of 96.92% and 98/100 for the Xbox 360 version";
            Pattern pattern = Pattern.compile("(\d|\.|,)+");
    Matcher matcher = pattern.matcher(str);
    while (matcher.find()) {
        str=str.replace(matcher.group(),"");
    }