正则表达式与pythonRE库的使用

来源:互联网 发布:阿里旺旺for mac 10.9 编辑:程序博客网 时间:2024/06/12 20:14

1-正则表达式

正则表达式(Regular Expression):用于一种语法格式简洁表达一组字符串。正则表达式在处理文本中非常有用,识别病毒,字符串匹配等等。

2-正则表达式常用操作符。

操作符 作用 . 用于表示一个任意的字符 [ ] 表示一个在范围内的任意字符,例如[a-z]表示a-z的任意一个字符 [^] 表示一个不在范围内的任意字符 * 前一个字符0次或者无限次扩展,例如abc *表示ab或者abc或者abcc等等 + 前一个字符1次或者无限次扩展 ? 前一个字符0次或者1次扩展 | 或 {m} 表示扩展前一个字符(包括前一个)m次,例如ab{3}c表示abbbc {m,n} 表示扩展前一个字符m到n次 ^ 表示字符串的开头,例如,^abc 表示为abc且是一个字符串的开头 $ 表示字符串的结尾,例如 abc$ ( ) 分组标记,内部只能使用 | 符号,例如(abc | def) \d 表示数字0-9 \w 表示符号A-Z,a-z,0-9

3-经典正则表达式


表示由26个字母组成的任意字符串,^和$表示字符串的首尾匹配,表明这个是用来表示匹配字符串

^[A-Za-z]+$

表示由26个字母和数字组成的任意字符串

^[A-Za-z0-9]+$

表示整数形式的字符串

^-?\d+$

使用了UTF-8编码表示中文字符

[\u4e00-\u9fa5]

4-Python标准库re库

功能函数 函数参数 函数作用 re.search() pattern,string,flag=0 搜索待匹配字符串中第一个匹配的字符串 re.match() pattern,string,flag=0 从待匹配的字符串的头开始匹配第一个匹配的字符串 re.findall() pattern,string,flag=0 搜索字符串,以列表类型返回全部符合条件的子串 re.split() pattern,string,maxsplit=0,flag=0 字符串匹配并分割 re.finditer() pattern,string,flag=0 迭代匹配所有子串 re.sub() pattern,repl,string,count=0,flag=0 将匹配到的字符串替换成指定字符串

参数解释

pattern表示正则表达式的字符串

string待匹配的字符串

flag控制标记,默认0,可选控制标记有:
- re.I 忽略大小写匹配
- re.M ^操作符是表示从字符串的开头开始匹配,使用了re.M的标记之后可以从每行的字符串开头开始匹配
- re.S .操作符默认匹配除换行符外的所有字符,使用该标记后,也适用于换行符。

maxsplit通俗的理解就是从字符串首部开始匹配出maxsplit个pattern,然后将匹配的这几个挖掉,原字符串就变成maxsplit+1份了。

repl用于替换匹配到的子串

count表示替换的最大个数,默认为0表示全部替换

5-re库使用技巧

5-1-调用两种方法:

简单调用

s = re.match(r'\d+','123abc')

面向对象调用

s = re.compile(r'\d+')m = s.match('123abc')

5-2-匹配原则

贪婪匹配,匹配第一个符合条件且最长的字符串

ss = re.search(r'p.*y','psyxxy')

输出结果ss.group(0) = ‘psyxxy’


最小匹配,匹配第一个符合条件切最短的字符串

ss = re.search(r'p.*?y','psyxxy')

输出结果ss.group(0) = ‘psy’

**通过添加?操作符进行最小匹配和贪婪匹配切换

原创粉丝点击