正则表达式是一项伟大的发明,读懂它的人觉得优雅、精致,读不懂的人觉得晦涩、复杂。阅读本文的前提是你已经知晓正表达式的基础知识,比如修饰符、字符匹配、位置匹配、捕获组等。
如何解读
阅读顺序
- 修饰符
- 转义符
- 圆括号和方括号里的内容
- 限定符
- 定位符
举个例子,比如一个匹配腾讯qq的正则表达式[1-9]\d{4,}
- 先看修饰符,没有
- 再看转义符
\d
,代表数字0到9 - 再看方框里的内容
[1-9]
,代表数字1到9 - 再看限定符
{4,}
,表示至少4个
整个正则表达式想表达的意思就通透了:全是数字,至少5位,第一位数字不能为0,其他位上的数字随意。
如何写
- 先理解匹配规则
- 按照预定的规则,从左到右依次书写
- 收集测试用例,进行功能测试
- 兼容未来版本
例如写一个匹配手机号码的正则表达式
- 规则:手机号由11位纯数字组成,第一位只能为1,第二位目前虽然只开放了号码3456789,但未来有可能开放新的数字,建议不做限制
- 这样,一个非常简单的匹配手机号码的正则表达式就诞生了:/^1\d{10}$/