用于在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(),"");
}