(?:(?:[0-9]\\d{2}))这个表达式是什么意思
(?:(?:[0-9]\\d{2}))
這要提到一個分組的概念。
正規中的小括號 () 會產生分組,分組可以使用佔位符在表達式中表示匹配的值,分組從 1 開始計算。
()
如: (d+)-1 中的第一个小括号匹配的是 1 个以上的数字,那么分组1表示为 1,整个表达式可以匹配 123-123 這種以破折號分隔前後數字相同的格式。
(d+)-1
1
123-123
而如果在括號中加上 ?: 即表示不产生分组号,此时 (?:d+)-1 匹配的就只是 123-1 了。
?:
(?:d+)-1
123-1
雖然 (?:(?:[0-9]d{2})) 看起來複雜,其實就是配對了 3 個數字。
(?:(?:[0-9]d{2}))
這個應該是3位 0到9 的數字。
這要提到一個分組的概念。
正規中的小括號
()
會產生分組,分組可以使用佔位符在表達式中表示匹配的值,分組從 1 開始計算。如:
(d+)-1
中的第一个小括号匹配的是 1 个以上的数字,那么分组1表示为1
,整个表达式可以匹配123-123
這種以破折號分隔前後數字相同的格式。而如果在括號中加上
?:
即表示不产生分组号,此时(?:d+)-1
匹配的就只是123-1
了。雖然
(?:(?:[0-9]d{2}))
看起來複雜,其實就是配對了 3 個數字。這個應該是3位 0到9 的數字。