python 正则表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 正则表达式相关的知识,希望对你有一定的参考价值。
python 正则表达式
re 模块用于对python的正则表达式的操作。
字符:
. 匹配除换行符之外的任一字符;
\w 匹配字母、数字、下划线、汉字;
\s 匹配任一空白字符;
\d 匹配数字;
\b 匹配单词的开始或结束;
^ 匹配字符串的开始,与其他连用表取反;
$ 匹配字符串的结束;
次数:
* 重复零次或多次;
+ 重复一次或多次;
? 重复零次或一次;
{n} 重复n次
{n,m} 重复n到m次;
re 模块下 match 、search 、findall 、sub、split、group() 和 groups()方法
match: 从字符串开头开始匹配,匹配到一个即退出;
>>> re.match(".","abc123def")
<_sre.SRE_Match object; span=(0, 1), match=‘a‘>
>>> re.match(".","abc123def").group()
‘a‘
search:
>>> re.search("\d+","abc123def456upq").group() # 取第一组符合的数字
‘123‘
findall:
>>> re.findall("\d+","abc123def456upq") # 取所有数字
[‘123‘, ‘456‘]
>>> re.findall("[^\d+]","abc123def456upq_jdh*jde345dfs") # 取反
[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘u‘, ‘p‘, ‘q‘, ‘_‘, ‘j‘, ‘d‘, ‘h‘, ‘*‘,
‘j‘, ‘d‘, ‘e‘, ‘d‘, ‘f‘, ‘s‘]
>>>
sub : 替换匹配的字符串
>>> print(re.sub(‘\d+‘,‘|‘,‘[email protected]#24.7c_234‘,count=2))
sad|sab$|@#24.7c_234
split: 根据指定的匹配进行分组
>>> tent
"‘1 - 2 * ((60-30+1*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2) )‘"
>>> re.split(‘\*‘,tent)
["‘1 - 2 ", ‘ ((60-30+1‘, ‘(9-2‘, ‘5/3+7/3‘, ‘99/4‘, ‘2998+10‘, ‘568/14))
-(-4‘, ‘3)/(16-3‘, "2) )‘"]
group() 和 groups() : 以分组形式进行显示
>>> a = "123abc456"
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group())
123abc456
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0))
123abc456
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1))
123
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2))
abc
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).groups())
(‘123‘, ‘abc‘, ‘456‘)
本文出自 “纷繁中享受技术的简单喜悦” 博客,请务必保留此出处http://51enjoy.blog.51cto.com/8393791/1738308
以上是关于python 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章