python使用正则表达式可以参见python正则表达式菜鸟教程,
1 re.search
re.search
扫描整个字符串只要找到第一个匹配然后返回.像下面的例子加上了^$
校验边界,使用re.search并不合适。只有是包含某个字符串的时候,才适宜。
import re
a = 'dn11'
if re.search('^\d+$',a):
print('符合条件')
else:
print('不符合条件')
b = '111'
if re.search('^\d+$',b):
print('符合条件')
else:
print('不符合条件')
2 re.match
这个方法并不是完全匹配,校验字符串是否符合某个正则表达式的规则,这个时候用re.match
的速度,应该比re.search
要快
ALPHA_NUM_PATTERN = "^[\u4e00-\u9fa5]*([“]{1}[\u4e00-\u9fa5a-zA-Z0-9]*[”]{1})?[\u4e00-\u9fa5]{2,}[a-zA-Z0-9]*([(]{1}[\u4e00-\u9fa5a-zA-Z0-9]*[)]{1})?([(]{1}[\u4e00-\u9fa5a-zA-Z0-9]*[)]{1})?、*\d*[+&°.·●]?\d*[\u4e00-\u9fa5]*(?<![a-zA-Z])$"
if not re.match(ALPHA_NUM_PATTERN,name):
raise EnException('企业名称不得《企业名称禁限用规则》')
3 re.sub
有时候想通过正则替换某字符串,就用到了re.sub
,re.I
忽略大小写
c = ' dddsadsaNull'
d = re.sub('( |null)','',c,flags=re.I)
print(d)
4 re.compile
节省了编译时间吧
p = re.compile('( |null)',re.I)
d = p.sub('',c)
print(d)