\(?0\d{2}[) -]?\d{8}正则表达式的解释

时间:2022-06-30 17:14:20

正则表达式30分钟出现了这样一个正则表达式:(?0\d{2}[) -]?\d{8}

“(”和“)”也是元字符,所以需要转义。

?匹配零或一次

(? 表示 出现(或者不出现(

0\d{2} 表示 以0开头的三位数字

[) - ] 表示 ) or - 出现零或者一次

这个表达式可以匹配几种格式的电话号码,
像(010)88886666,或022-22334455,或02912345678等。

不过以下格式也符合条件:
010)12345678或(022-87654321

再细分规则,用 | 把分支规则联系起来。 0\d{2}-\d{8}|0\d{3}-\d{7} | (0\d{2})[- ]?\d{8}|0\d{2}[- ]?\d{8}

正确的IP地址:
每一位都不能超过255,前三个数字加点号是一组,后一个仅为数字。
数字大小不能超过255,如果百位为2,个位十位数字不能超过5,如果百位是0或1,则个位无所谓。

字符类来描述一个:((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)。

反义符:
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

\b(\w+)\b\s+\1\b 与 \b(?\w+)\b\s+\k\b 含义表达相同 (?\w+)给匹配的部分赋予了别名