正则表达式

本文深入解析了正则表达式的特性与语法,包括元字符、修饰符、分组符和量词等基本元素,同时提供了多种实用的正则表达式实例,如匹配中国邮政编码、手机号码、身份证号码、Email地址、双字节字符、IP地址以及强密码等。
摘要由CSDN通过智能技术生成

正则表达式的特点:

  1. 灵活性、逻辑性和功能性都很强;
  2. 主要应用对象是文本;
  3. 可以迅速地用极简单的方式达到字符串的复杂控制;
  4. 晦涩难懂。

正则表达式基本语法:

  1. 元字符
字符说明
.匹配除了换行符以外的任意单个字符
\d匹配数字
\D匹配非数字
\w匹配字母,数字,下划线
\W匹配任意不是字母,数字,下划线的字符
\s匹配任意空白字符(\r,\n,\t,空格)
\S匹配任意非空白字符
\b匹配单词的边界(开始或者结束)
\B匹配非单词边界
\n匹配换行符
\t匹配制表符
|将两个匹配条件进行逻辑“或”(or)运算
a|b匹配a或者b
^匹配字符串的开始
$匹配字符串的结尾
  1. 修饰符
字符说明
iignore - 不区分大小写
g全局匹配
mMultiline- 多行匹配,边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾
s特殊字符圆点 . 中包含换行符 \n
  1. 分组符
字符说明
[xyz]匹配字符集中任意一个字符
[^xyz]匹配非字符集中任意一个字符
[a-z]指定匹配范围,[a-z]匹配任意一个小写字母
[^a-z]匹配任意一个非小写英文字母的字符
[0-9]匹配任意一个数字 同等于\d
[^0-9]匹配任意非数字
[0-9a-zA-Z_]匹配字母、数字、下划线,同等于\w
()组,主要应用在限制多选结构的范围/分组/捕获文本/环视/特殊模式处理
  1. 量词
字符说明
??重复零次或一次,但尽可能少的重复
+?重复一次或者多次,但尽可能少的重复
*?重复任意次,但尽可能少的重复
*重复零次或任意多次
{n}重复n次
{m, n}?重复m-n次,但尽可能少的重复
{m,}?重复m次以上,但尽可能少的重复
  1. 贪婪匹配和懒惰匹配
    贪婪匹配:匹配尽可能多的字符。
    懒惰匹配:匹配尽可能少的字符。限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?,如*属于贪婪匹配,*?属于懒惰就加载。
  2. 常见表达式
    (1)匹配双字节字符(包括汉字在内)
    [^\x00-\xff]
    (2)匹配中国邮政编码
    [1-9]\d{5}(?!\d)
    (3)匹配手机号码(包含虚拟号码和新号码段)
    ^1([38][0-9]|4[5-9]|5[0-3,5-9]|66|7[0-8]|9[89])[0-9]{8}$
    (4)身份证号码
    15位:\d{14}[[0-9],0-9xX]
    18位:\d{17}(\d|X|x)
    综合:(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|x|X)$)
    (5)Email地址
    ^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
    (6)匹配双字节字符(包括汉字在内)
    [^\x00-\xff]
    (7)匹配ip地址
    ([1-9]{1,3}\.){3}[1-9]
    (8)强密码(>8位字符,且必须包含大写字母、小写字母、数字、特殊字符)
    ^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值