1

我需要从语句中删除尾随小数/点。以下是声明

ABC paid 10.25 RS confirmed. from bank XYZ 20125722. on 23-12-2012

我想从语句中删除尾随小数/点。删除小数/点后,它应该像

ABC paid 10.25 RS confirmed from bank XYZ 20125722 on 23-12-2012

请注意,我不需要删除 中的小数点10.25,但在其他地方。我怎么能用Java做到这一点?

4

5 回答 5

1

在 Java 中,只需对字符串使用replaceAll(String pattern,String replacement)方法,如下所示:

String result = "ABC paid 10.25 RS confirmed. from bank XYZ 20125722. on 23-12-2012".replaceAll("\\.\\s+"," ") ;
于 2012-04-18T04:00:05.540 回答
0

您可以使用的正则表达式是/\.\S+/Perl 或 Perl-regex 支持语言。否则/\.[ ^I]/,“^I”是 TAB 字符。将其替换为空。

希望有帮助。

于 2012-04-18T03:55:11.253 回答
0

您应该使用 is \\.\\s+,因为点后可能包含多个空格或一个空格。

代码如下:

String result = "ABC paid 10.25 RS confirmed. from bank  XYZ 20125722. on 23-12-2012"
               .replaceAll("\\.\\s+", " ");
于 2012-04-18T05:20:38.107 回答
0

那么,你想匹配任何.不是数字的吗?您可以使用一种称为负前瞻的方法:

"\\.(?![0-9])"

这匹配.一个数字之前的任何 NOT。

于 2012-04-18T05:30:08.273 回答
0

你的正则表达式是

\.(?=\s|$)

表示当一个点后跟一个空格或字符串的结尾时匹配一个点。(?=\s|$)是一个正向前瞻,确保后面有空格或字符串结尾,但与此不匹配,因此无需再次插入,只需替换为空字符串即可。

在 Regexr 上查看

对于你的 java

String res = "ABC paid 10.25 RS confirmed. from bank XYZ 20125722. on 23-12-2012".replaceAll("\\.(?=\\s|$)", "");
于 2012-04-18T05:30:55.573 回答