我遇到了一个Java正则表达式的问题。
如何在字符串中查找一个或多个数字后跟单个“.”的模式?
"^[\\d]+[\\.]$"
^ = start of string
[\\d] = any digit
+ = 1 or more ocurrences
\\. = escaped dot char
$ = end of string
String searchText = "asdgasdgasdg a121341234.sdg asdg as12..dg a1234.sdg ";
searchText.matches("\\d+\\.[^.]");
(\\d)+\\.
\\d
表示任何数字
+
表示一个或多个
请参考这篇文章:http://www.vogella.com/articles/JavaRegularExpressions/article.html
.
。你应该使用 \\.
。 - John Lawrence\d
用于表示整数,但要在Java代码中表示为正则表达式,则必须使用\\d
,因为它们会进行双重解析。\d
,然后是正则表达式解析器,它将其解释为整数元字符(这就是我们想要的)。+
贪婪量词。 .
,我们使用\\.
,因为存在双重解析情况。(\\d)+(\\.)
。\\d+)\\.
\\d
代表数字,+
代表一个或多个,\\.
代表点。如果在.
之前没有反斜杠,则它匹配任何字符。