我有一个java正则表达式问题。
如何找到一个或多个数字后跟一个数字的模式。在一个字符串?
答案 0 :(得分:9)
"^[\\d]+[\\.]$"
^ = start of string
[\\d] = any digit
+ = 1 or more ocurrences
\\. = escaped dot char
$ = end of string
答案 1 :(得分:6)
我认为这是你问题的答案:
String searchText = "asdgasdgasdg a121341234.sdg asdg as12..dg a1234.sdg ";
searchText.matches("\\d+\\.[^.]");
这将匹配“121341234”。和“1234”。但不是“12”。
答案 2 :(得分:2)
(\\d)+\\.
\\d
表示任何数字
+
表示一个或多个
请参阅此http://www.vogella.com/articles/JavaRegularExpressions/article.html
答案 3 :(得分:1)
在正则表达式中,元字符\d
用于表示整数但是要在java代码中表示它作为正则表达式,因为对它们执行了双重解析,所以必须使用\\d
。
首先是一个字符串解析器,它将它转换为\d
,然后是正则表达式解析器,它将把它解释为整数元字符(这就是我们想要的)。
对于“一个或多个”部分,我们使用+
贪心量词。
由于双解析方案,要表示.
我们使用\\.
。
所以最后我们有(\\d)+(\\.)
。
答案 4 :(得分:0)
\\d+)\\.
\\d
代表数字,+
代表一个或多个,\\.
代表点数。如果.
在没有反斜杠的情况下写入,则匹配任何字符。