正则表达式

it2022-05-08  8

正则表达式是用于处理字符串的强大工具, 检查一个字符串是否与某种模式匹配。

元字符 :

# . ^ $ * + ? {} [] \ | ()

大多数字母和字符会匹配它们自身,有少数特殊字符我们称为元字符,它们不能匹配自身,它们定义了字符类、子组匹配和模式重复次数等 。

元字符的使用

. 匹配除换行符之外的所有的字符 \d 匹配0~9的数字 \s 匹配任意的空白符,包括空格,制表符(Tab),换行符等 \w 匹配字母或数字或下划线或汉字等 \b 表示单词的边界 ^ 脱字符,匹配输入字符串的开始的位置 $ 匹配输入字符串的结束位置 \. 表示匹配点号本身 \D、\S、\W、\B是与小写的相反的作用

匹配次数

{M,N} M和N 为非负整数,其中M<=N表示前面的匹配M~N次 {M,} 表示需要匹配M次 {,N} 等价于{0~N} {N} 表示需要匹配N次 * 匹配前面的子表达式零次或多次,等价于{0,} + 匹配前面的子表达式一次或多次,等价于{1,} ? 匹配前面的子表达式零次或一次,等价于{0,1} 注:*?、+?、{n,m}? 贪婪与懒惰

子组匹配

[ ] 字符类,将要匹配的一类字符集放在[]里面 例如: [ . ? * ( ) {} ] 匹配里面的这些符号 [0-9] 匹配0到9的数字相当于\d [^\d] 匹配除数字以外的字符,相当于\D [a-z] 匹配所有的小写字母 [^a-z] 匹配非小写字母 | 相当于或(or)分支条件 例如: A | B 匹配字母A或者B 与[AB]是一样的

分组

() 分组,将要匹配的一类字符集放在()组成一个小组 例如: (\d){3} 匹配一个三位数 a(bc)*匹配一个a和0个或多个bc a(b|c) 匹配ab或者ac

re模块

re.compile() 编译正则表达式为模式对象 re模块的常用方法 match() 判断一个正则表达式是否从开始处匹配字符串 search() 遍历字符串,找到正则表达式匹配的第一个位置 findall() 遍历字符串,找到正则表达式匹配的所有位置并以列表的形式返回 查看匹配对象中的信息 group() 返回匹配到的字符串 star()返回匹配的开始位置 end()返回匹配的结束位置 span() 返回一个元组表示匹配位置(开始,结束)

转载于:https://www.cnblogs.com/zhuzq/p/9529299.html


最新回复(0)