我遇到了 java 正则表达式问题。
如何找到 1 个或多个数字后跟单个 . 在一个字符串中?
"^[\\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+\\.[^.]");
这将匹配“121341234”。和“1234”。但不是“12”。
(\\d)+\\.
\\d
代表任何数字
+
表示一个或多个
请参阅此http://www.vogella.com/articles/JavaRegularExpressions/article.html
在正则表达式中,元字符\d
用于表示整数,但在 Java 代码中将其表示为正则表达式,\\d
因为对它们执行双重解析,因此必须使用它。
首先是一个字符串解析器,它将其转换为\d
,然后是正则表达式解析器,它将它解释为一个整数元字符(这是我们想要的)。
对于“一个或多个”部分,我们使用+
贪婪量词。
由于双重解析场景,.
我们使用来表示 a 。\\.
所以最后我们有了(\\d)+(\\.)
。
\\d+)\\.
\\d
代表数字,+
代表一个和更多,\\.
代表点。如果在匹配任何.
字符之前没有反斜杠写入。