匹配实例

MAC Address

([0-9A-Fa-f][0-9A-Fa-f]:){5}([0-9A-Fa-f][0-9A-Fa-f])

[0-9A-Fa-f] : 匹配 0-9 或 A-F 或 a-f

{5} : 匹配前面的表达式 5 次

() : 标记一个子表达式的开始和结束

上面例子的整体描述是:匹配 7A: 这样的子串 5 次,然后再匹配 7A 这样的字串一次。

进一步,上面的正则表达式可以改写为 ([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})

IP Address

((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])

[] : 标记一个中括号表达式的开始和结束

[0-5] : 匹配字符范围,匹配指定范围内的任意字符。匹配 0-5。

[01] : 匹配字符集合,匹配所包含的任意一个字符。匹配 0 或 1。

25[0-5] : 匹配 250-255

2[0-4][0-9] : 匹配 200-249

? : 匹配前面的子表达式 0 次或 1 次

[01]?[0-9]?[0-9] : 匹配 0-199

| : 或,左右两个表达式匹配一个即可