11

我遇到了 java 正则表达式问题。

如何找到 1 个或多个数字后跟单个 . 在一个字符串中?

4

5 回答 5

10
"^[\\d]+[\\.]$"

^     = start of string
[\\d] = any digit
+     = 1 or more ocurrences
\\.   = escaped dot char
$     = end of string   
于 2012-06-08T16:05:26.240 回答
8

我认为这是您问题的答案:

String searchText = "asdgasdgasdg a121341234.sdg asdg as12..dg a1234.sdg ";
searchText.matches("\\d+\\.[^.]");

这将匹配“121341234”。和“1234”。但不是“12”。

于 2012-06-08T16:06:17.337 回答
3
(\\d)+\\.

\\d代表任何数字
+表示一个或多个

请参阅此http://www.vogella.com/articles/JavaRegularExpressions/article.html

于 2012-06-08T16:02:46.573 回答
1

在正则表达式中,元字符\d用于表示整数,但在 Java 代码中将其表示为正则表达式,\\d因为对它们执行双重解析,因此必须使用它。

首先是一个字符串解析器,它将其转换为\d,然后是正则表达式解析器,它将它解释为一个整数元字符(这是我们想要的)。

对于“一个或多个”部分,我们使用+贪婪量词。

由于双重解析场景,.我们使用来表示 a 。\\.

所以最后我们有了(\\d)+(\\.)

于 2012-06-08T16:34:58.057 回答
0

\\d+)\\.

\\d代表数字,+代表一个和更多,\\.代表点。如果在匹配任何.字符之前没有反斜杠写入。

于 2012-06-08T16:05:09.640 回答