三分钟就学会用正则表达式

发布时间:2024年01月03日

正则表达式

概念

一个正则表达式就是由普通字符(例如a-z A-A 0-9等)以及特殊字符组成的文字模式,该模式描述在查找文字主体时待匹配的一个或多个字符,通常被用来检索、替换那些符合某个模式(规则)的文本

正则表达式作用:

  • 字符串匹配和验证:主要是对一些字符串进行验证的,验证它的合法性

  • 数据提取和筛选

  • 文本替换

  • 文本格式化

  • 文件操作

  • 根据模式匹配从大字符串中提取子字符串

正则表达式的组成字符:

1.位置指示符:

  • ^:表示一行的开始

  • $:表示一行的结束

2.常用转义码:

  • \n:匹配一个换行符。例如,正则表达式\n可以匹配文本中的换行符。

  • \t:匹配一个制表符。在许多文本编辑器中,制表符表示为Tab键

  • \char:char是一个字符,表示能将\后的字符标记为一个原义字符也就是字符本身, 例如:{ % * ? . | [ ]等

  • \? \. \* \$ \^ :将字符原义输出

3.重复应用:

  • *:匹配前面的子表达式0次或多次 例如Ao* 能匹配到的表达式可以是A或Ao或Aoo..Aooo....

  • +:匹配前面的子表达式1次或多次 例如Ao+ 能匹配到Ao 不能是A,可是Aoo......

  • ?:匹配前面的子表达式0次或1次 例如:Ao? 只能匹配到A或Ao

  • {n}:n是一个非负整数,匹配确定的n次 例如Ao{4},可能匹配到Aoooo

  • {n,}:n是一个非负整数,至少匹配n次,最多可以匹配无数次,例如Ao{2,} 能匹配Aoo,Aooo.......

  • {n,m}:n,m是一个非负整数,至少匹配n次,最多可以匹配m次 例如Ao{2,4} 能匹配到Aoo Aooo Aoooo

4.分组内容匹配:

  • . :匹配除\n之外的任何单个字符,如果要匹配包括"\n"在内的任何字符,请使用[.\n]

  • [xyz]:字符集合,匹配所包含的任意一个字符,例如[abc]可能匹配"plain"中的a,也可以匹配"boy"中的b,可以匹配"cat"中的c

  • [^xyz]:匹配未包含的任意字符,与上面相反 ,例如[^abcd]:可以匹配pig等,只要不包含abcd中的任意一个字符即可

  • [a-z]:字符范围 匹配指定范围内的任意字符,例如[a-z]:匹配a-z中的任意一个字符

  • [^a-z]:匹配不包含指定范围内的任意字符

  • \d:匹配一个数字字符 等价于[0-9]

  • \D:匹配非数字字符 等价于[^0-9]

  • \w:匹配包含下划线在内的任意的单个字符 等价于[a-zA-Z0-9_]

  • \W:匹配任意非单个字符 等价于[^a-zA-Z0-9_]

  • \S:匹配任意非空白字符,等价于[^\f\n\r\t\v]

    • \f:换页符

    • \r:回车符

    • \v:垂直制表符

  • \s:匹配任意的空白字符等价于[\f\n\r\t\v]

5.代位匹配:

  • x|y:匹配x或y,例如 z|food:能匹配food或z (z|f)ood:能匹配zood或food

6.优先级:从高到底的顺序为

  • \

  • () []

  • *+ ? {n} {n,} {n,m}

  • D.^$

  • E. |

7.常用的正则表达式:

  • 身份证号: ^\d{17}(\d|X|x)$ 或 [1-9]\d{17}|[1-9]\d{16}[Xx]

  • 电话号码:1[3456789]\d{9}$

  • 邮编: \d{6}$

  • 电子邮件:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$ 或者\w+@\w+.\w+

    例子:username@domain.com`

  • 网址:^(http|https):\/\/(?:a-zA-Z0-9?.)+(?:[a-zA-Z]{2,6}|[0-9]{3})$或者https?:\/\/\w+.\w+

    例子:https://www.example.com

正则表达式用于字符串处理、表单验证,文本处理等场合,实用高效

文章来源:https://blog.csdn.net/AIMing_byte/article/details/135321001
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。