赞
踩
例子
import re
patten = 'python'
str1 = 'pytho and java'
res = re.match(patten, str).group()
if res:
print(res)
else:
print('没有匹配到!')
预定义字符集 | 描述 |
---|---|
\d | 可以匹配0-9中的任意一个数字,等效于[0123456789]、[0-9] |
\w | 可以匹配任意一个字母、数字或下划线,等效于[a-zA-Z0-9_] |
\s | 可以匹配空格,制表符或其他的空白 |
\D | \d的反集,也就是除了数字不能匹配之外,别的字符都可以匹配 |
\W | \d的反集,也就是除了字母、数字和下划线不能匹配之外,别的字符都可以匹配 |
\S | \s的反集,也就是除了空格、制表符和其它的空白不能匹配之外,其余的字符都可以匹配 |
[abcd][abcd]可以写成[abcd]{2}
符号 | 描述 |
---|---|
{n} | 表示重复n次。如:\b{3} = \b\b\b,a{3} = aaa |
{m,n} | 表示至少重复m次,最多重复n次,m:下限,n:上限。比如:ab{1,3}可以匹配ab,abb还可以匹配abbb |
{m,} | 表示至少重复m次。比如:a{2,}可以匹配aaa、aaaa还可以匹配aaaaaaaa |
{,n} | 表示至少可以匹配n次 |
* | 可以匹配表达式0次到任意次,是用来表示数量的。和{0,}是等效的比如:^*b可以匹配b、^b还可以匹配^^^b |
+ | 可以匹配表达式1次到任意次,也是用来表示数量的,和”*“唯一的差别就是不能匹配到0次 |
贪婪匹配
非贪婪匹配
开始和结尾
前面的内容 + .*? + 后面的内容
方法名 | 描述 | 返回值 |
---|---|---|
compile(pattern, flags) | 根据包含正则表达式的字符串,创建模式对象 | re类型的pattern对象 |
search(pattern,strings,flags) | 在字符串中查找 | 第一个匹配的对象或None |
match(pattern,strings,flags) | 在字符串的开始处,开始匹配的模式 | 在字符串开头匹配到的对象或None |
split(pattern,string,maxsplit=0,flags) | 根据模式的匹配来分割字符串 | 分割后的字符串列表 |
filldall(pattern,string,flags) | 列出字符串中所有的匹配项 | 所有匹配到的字符串列表 |
sub(pattern,repl,strings,count=0,flags) | 将字符串中的所有pattern项,用repl项替代 | 完成替换后的新字符串 |
import re
pat = re.compile(r'abc123', re.S) # re.S标志位:意味着可以换行匹配
respones = pat.match('abc123').gloup()
print(response)
-----------------输出-------------------
'abc123456'
import re
pat = re,search(r'abc123','defabc123')
print(pat.gloup())
----------输出----------------
abc123
import re
pat = re.compile(r'abc123456', re.I) # re.I:表示忽略大小写
b = pat.search('defabc123456')
print(b.group())
-------------------输出-----------------------
None
import re
pat = re.compile(r'abc123abc')
a = pat.findall('123abc123')
print(a)
--------输出---------
['abc123','abc123']
import re
s = '1+2*3/4-5'
a = re.split(r'[\+\-\*\/]',s)
print(a)
----------输出----------------------
['1','2', '3', '4']
import re
a = '1211111111456789'
c = re.sub('1', '2', a)
print(c)
-------------输出------------
2222222222456789
import re s = 'apple price is $66,banana price is $55' # 需求是匹配 $66 $55 pat = r'.+(\$\d+).+(\$\d+)' a = re.search(pat, s) print(a.group()) print(a.group(0)) print(a.group(1)) print(a.group(2)) print(a.groups()) ---------------输出------------------- apple price is $66,banana price is $55 apple price is $66,banana price is $55 $66 $55 ('$66', '$55')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。