有人知道这在java中意味着什么:
testNumber.matches("^800[25-9][2-9].*$")
我主要与[25-9]
混淆。
答案 0 :(得分:1)
[]
是一个子集。括号中的任何字符都将匹配。 5-9
是从5到9的字符范围.2也是一个字符。因此[25-9]
将匹配2,5,6,7,8和9。
答案 1 :(得分:1)
[25-9]
表示2
或5-9
您可以从这里获得正则表达式的解释:http://rick.measham.id.au/paste/explain.pl
答案 2 :(得分:1)
以下是对正则表达式的解释:
<强> / ^ 800 [25-9] [2-9]。* $ / 强>
答案 3 :(得分:0)
基于http://regex101.com/和https://www.debuggex.com/
^800[25-9][2-9].*$
^
在字符串800
匹配字符800字面[25-9]
匹配下面列表中的单个字符
2
字面字符2 5-9
单个字符,范围在5到9之间[2-9]
匹配下面列表中的单个字符
2-9
单个字符,范围在2到9之间.*
匹配任何字符(换行符除外)
*
量词:在零和无限次之间,尽可能多次,根据需要回馈[贪心] $
断言字符串末尾的位置换句话说,[...]
是character class。这意味着它匹配其中的一个字符,例如[123]
表示它与1
2
3
匹配。您也可以将此范围写为[1-3]
。
如果是[25-9]
,则表示它将匹配2
或愤怒5-9
中的一个数字5
,6
,{{1} },7
,8
。