Python3 re 正则表达式常用示例
Python 提供了 re 模块实现正则表达式功能,通过正则表达式能够非常方便地处理字符串,但是正则表达式的编写较为复杂,本文记录一些常用的 ptyhon 正则表达式示例。
1. Python 正则表达式函数
(1) re.sub 替换字符串中的匹配项,函数原型如下: re.sub(pattern, repl, string, count=0, flags=0)
- pattern 为匹配模式
- repl 为替换的目标字符串
- string 为待处理的原始字符串
- count 替换的最大次数,默认值为0,所有匹配上的都替换
- flags 编译时用的匹配模式,比如 re.I 表示大小写不敏感。
(2) re.subn re.subn(pattern, repl, string, count=0, flags=0)
re.subn 与 re.sub 功能类似,区别大于 re.subn 返回值是一个元组,包含 2 个元素,第一个为匹配替换后的字符串,第二个是匹配次数。
2. Python 正则表达式常用示例
(1) 字符串匹配
>>> a = "hello world!" >>> re.sub('world', 'china', a) 'hello china!'
(2) 字符串之后的所有内容匹配
>>> a = "hello world!" >>> re.sub('world.*$', '', a) 'hello '
(3)单引号匹配
>>> a = "hi,'hello' world!" >>> re.sub('\'.*?\'', '', a) 'hi, world!'
(4) key=value 形式匹配
>>> a = 'k1=v1 k2=v2 k3=v3' >>> re.sub('k2=.*? ', '', a) 'k1=v1 k3=v3'
(5) 括号匹配
>>> a = 'a int, b int(11), c int(20)' >>> re.sub('int[(](.*?)[)]', 'int', a) 'a int, b int, c int'
(6) 任意数字匹配
>>> a = 'abcdeft 12s 212 2aef' >>> re.sub('\d', '', a) 'abcdeft s aef' 或者 >>> a = 'abcdeft 12s 212 2aef' >>> re.sub('[0-9]', '', a) 'abcdeft s aef'
(7) 任意非数字匹配
>>> a = 'abcdeft 12s 212 2aef' >>> re.sub('\D', '', a) '122122'
(8) 任意空白字符匹配
>>> a = 'abcdeft 12s 212 2aef' >>> re.sub('\s', '', a) 'abcdeft12s2122aef' 或 >>> a = 'abcdeft 12s 212 2aef' >>> re.sub('[\t\n\r\f ]', '', a) 'abcdeft12s2122aef'
(9) 任意字母匹配
>>> a = 'abcdeft 12s 212ABC 2aef' >>> re.sub('[a-zA-Z]', '', a) ' 12 212 2'
(10) 单词匹配
>>> a='abcdeft 12s 212ABC 2aef' >>> re.sub(r'\b[^\s]+\b', 'xx', a) 'xx xx xx xx' \b 表示空格 \s 表示空白符 ^\s 非空白符 + 表示多个非空白符
文章评论
共0条评论