Python3之re模块

来源:互联网 发布:公务员考试经验知乎 编辑:程序博客网 时间:2024/05/12 10:09

语法

字符 意义 . 匹配除了换行符以外的任意单个字符 [] 字符集,匹配包含的任意一个字符,如[a-zA-Z]匹配任意字母[^abc]匹配任意除abc以外的单个字符 \d 数字字符集 相当于[0-9] \D 非数字字符集 相当于[^0-9] \w 单个字符 相当于[a-zA-Z0-9_] \W 非单词字符 相当于[^a-zA-Z0-9_] \s 空白字符,包括空格,制表符等 相当于[ \t\n\r\f\v] \S 非空白字符 相当于[^ \t\n\r\f\v] ^ 匹配字符串开头 $ 匹配字符串结尾 * 前面字符任意次数包括0次 + 前面字符至少1次 ? 前面字符0次或1次 {m} 前面字符m次 {m,n} 前面字符m到n次,{,n}匹配0到n次,{m,}匹配m到无限次 | 或,总是从左到右匹配,匹配到左边则不管右边 ( ) 分组,编号从0开始,往后+1

模块内容

match object

match object有布尔值True,可以用来判断是否有匹配到:
match = re.search(pattern ,string)
if match:pass

match.group()

match.group()返回匹配到的内容
>>> m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
>>> m.group(0)
'Isaac Newton'
>>> m.group(1)
'Isaac'
>>> m.group(2)
'Newton'
>>> m.group(1, 2)
('Isaac', 'Newton')

re.compile(pattern,flag=0)

把一个正则表达式编译为expression object,然后可以被其他让函数调用
如:
prog = re.compile(pattern)
result = re.match(prog, string)

这样不用每次匹配都编译一遍,节约了时间

re.search(pattern, string, flag=0)

查找正则表达式所匹配的内容,返回一个match对象,如果没有就返回None.

re.match(pattern, string, flag=0)

match与search一样,区别在于match之匹配字符串开头如:
re.match("c", "abcdef") # No match
re.search("c", "abcdef") # Match

re.split(pattern, string, mixsplit=0, flag=0)

分离字符串如:
>>> re.split('\W+', 'Words, words, words.')
['Words', 'words', 'words', '']
>>> re.split('(\W+)', 'Words, words, words.')
['Words', ', ', 'words', ', ', 'words', '.', '']
>>> re.split('\W+', 'Words, words, words.', 1)
['Words', 'words, words.']
>>> re.split('[a-f]+', '0a3B9', flags=re.IGNORECASE)
['0', '3', '9']

re.sub(pattern, repl, string, count=0, flags=0)

re.sub()可以替换匹配到的字符串,其中repl可以为一个函数.
>>>re.sub('I', 'You', 'I will be replaced')
'You will be replaced'

0 0