正则表达式

292 阅读2分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

简介

       正则表达式:⼀种使⽤表达式的⽅式对字符串进⾏匹配的语法规则,即通过表达式从字符串中提取相应字符串。

测试工具

       可以基于下面的工具进行测试,也可以通过各种开发环境直接运用。 菜鸟教程 OSCHINA RegExr

语法

       正则表达式本质上是由各种字符组合成的表达式,字符可分为普通字符和元字符,前者在正则表达式中相当于匹配的文本,后者则具有特殊的含义。

元字符

元字符:具有固定含义的特殊符号

修饰符

       一个完整的正则表达式,除了用于匹配的字符以及元字符外,可能会添加修饰符用于指定整个表达式的匹配范围。修饰符的使用格式为:/表达式/修饰符,正则表达式常用的修饰符:

修饰符含义描述
iignore - 不区分大小写匹配不区分大小写,即A和a视为等同
gglobal - 全局匹配查找所有的匹配项。
mmulti 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开发环境的正则表达式使用