我遇到了 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代表数字,+代表一个和更多,\\.代表点。如果在匹配任何.字符之前没有反斜杠写入。