本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
简介
正则表达式:⼀种使⽤表达式的⽅式对字符串进⾏匹配的语法规则,即通过表达式从字符串中提取相应字符串。
测试工具
可以基于下面的工具进行测试,也可以通过各种开发环境直接运用。 菜鸟教程 OSCHINA RegExr
语法
正则表达式本质上是由各种字符组合成的表达式,字符可分为普通字符和元字符,前者在正则表达式中相当于匹配的文本,后者则具有特殊的含义。
元字符
修饰符
一个完整的正则表达式,除了用于匹配的字符以及元字符外,可能会添加修饰符用于指定整个表达式的匹配范围。修饰符的使用格式为:/表达式/修饰符,正则表达式常用的修饰符:
| 修饰符 | 含义 | 描述 |
|---|---|---|
| i | ignore - 不区分大小写 | 匹配不区分大小写,即A和a视为等同 |
| g | global - 全局匹配 | 查找所有的匹配项。 |
| m | multi line - 多行匹配 | 使边界字符 ^ 和 $ 匹配每一行的开头和结尾。(原来只有整个字符串的开头和结尾) |
| s | 使特殊字符圆点 . 中包含换行符 \n | 使.可以匹配所有字符 |
上述修饰符在测试工具OSCHINA中似乎无法使用,在另外两个则可以,但另外两个不是通过写入//修饰符,而是通过设置。
示例及解释
密码
强密码,即必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间:
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
即匹配8~10个字符串并且该字符串内只包含数字或字母,且从第一个字符开始,满足任意字符串(哪怕是空字符串)后包含数字,且满足任意字符串后包含小写字母,且满足任意字符串后包含大写字母。
十二月份
(01~09和1~12)
^(0?[1-9]|1[0-2])$
账号
合法帐号:字母开头,允许5-16字节,允许字母数字下划线
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
使用
正则表达式已经在Linux, Unix、HP 等操作系统,PHP、C#、Java 等开发环境以及其它软件广泛地应用,以Python为例,一般会导入re 模块,基于正则表达式语法进行字符串匹配:基于Python开发环境的正则表达式使用。