正则表达式入门

正则表达式(Regular Expression)

一、符号分类

符号作用
普通符号(无功能的符号) 例如a、15、张三用于匹配符号本身
特殊符号(属于是re中的保留字 具有特殊含义) 例如.、*、+、?由符号自身作用决定
字符组(用"[ ]"包裹 )用于匹配"[ ]"中任意符号
元字符 例如\d \w \s由符号自身作用决定
量词{a} 、{a,b}、{a,}用于匹配指定次数
边界符号 如\b 、^、$用于指定边界

二、特殊符号介绍

①.

# 功能:匹配任意符号
# 例如a.就是匹配任意带有a的字符串

②*

# 功能:匹配0到更多次
# 例如1.*b 就是匹配1和b中间夹杂任意字符的字符串(可以不包含)

③?

# 功能:匹配可选字符 或者指定匹配模式为非贪婪匹配模式(待匹配字符串后加?->例a+?) 即匹配的字符串尽可能短
# 例如ao?b就是匹配带有ab或者aob的字符串

④+

# 功能:匹配1到更多次
# 例如1.+b 就是匹配1和b中间夹杂任意字符的字符串(必须包含一个)

⑤( )

# 功能:获取匹配出的内容
# 例如(\d{4})就是提取出包含了连续4个数字的字符串

⑥|

# 功能:或者
# 例如(.zip|.7z|gz)就是提取出带有zip、7z、gz后缀的字符串

⑦?:

# 功能:非捕获分组 只使用分组的功能 不进行提取 
# 例如(?:\d{2,5}|tel)[-.:](\d{5})只提取出01-75855的号码

⑧\n

# 功能:回溯引用 按照之前的规则匹配
# 例如(\w)(\w)\2\1 匹配abccba

三、符号组介绍

①[ ]

# 功能:匹配[]中任意符号
# 例如[abc]就是匹配a或b或c

四、元字符介绍

①\w

# 功能:匹配任意单词字符(包含下划线) 等价于[a-zA-Z0-9_]

②\W

# 功能:匹配任何非单词字符 即除了字母、数字、下划线之外的字符,等价于 [^a-zA-Z0-9_]

③\d

# 功能:匹配一个数字字符 等价于[0-9]

④\D

# 功能:匹配一个非数字字符 等价于[^0-9]

⑤\s

# 功能:匹配任何空白字符(包括空格、制表符、换行符等)等价于 [ \t\n\r\f\v]

⑥\S

# 功能:匹配任何非空白字符 等价于[^ \t\n\r\f\v]

五、量词介绍

①{a}

# 功能:匹配指定符号a次
# 例如a{5}就是匹配连续出现a 5次

②{a,b}

# 功能:匹配指定符号a-b次
# 例如a{1,5}就是匹配连续出现a 1到5次

③{a,}

# 功能:匹配指定符号a到更多次
# 例如a{1}就是匹配连续出现a 1次或多次

六、边界符号介绍

①^

# 功能:匹配指定符号开头的字符串 或者表示取反
# 例如^1 就是匹配1开头的字符串

②$

# 功能:匹配指定符号结尾的字符串
# 例如1$ 就是匹配1结尾的字符串

③\b

# 功能:匹配以指定字符为边界的字符串
# 例如\bhello\就是匹配完整包含hello的字符串 比如hello world 但不能匹配helloworld

七、断言

①正向先行断言

# 语法:(?=pattern)
# 用法:检查当前位置之后的字符是否匹配 pattern 

②负向先行断言

# 语法:(?!pattern)
# 用法:检查当前位置之后的字符是否不匹配 pattern 如果不匹配 则继续进行后续匹配

③正向后行断言

# 语法:(?<=pattern)
# 用法:检查当前位置之前的字符是否匹配 pattern

④负向后行断言

# 语法:(?<!pattern)
# 用法:检查当前位置之前的字符是否不匹配 pattern 如果不匹配 则继续进行后续匹配

八、案例

以下案例来源于编程胶囊-打造学习编程的最好系统

① 案例1

fu$

②案例2

^0\d{2}[-]?[1-9]\d{6}

③案例3

^王.+.*?\d{4}

④案例4

(?:\W{2,3})[ ](?:\d{4})[\W](\d{1,2})[\W](\d{1,2})[\W]?

⑤案例5

^\d+\.\d+$

⑥案例6

<(\w+)>.+<(\/\1)>

九、正则表达式测试网站

Regex正则表达式在线/生成测试工具 - 正则表达式匹配 - 正则表达式测试 - MKLab在线工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值