$
import re
aa = '【菊部】替换,【a】和【1】不替换'
a = re.sub('【([\u4e00-\u9fa5]+)】', lambda x: x.group(1), aa)
替换前:【菊部】替换,【a】和【1】不替换
替换后:菊部替换,【a】和【1】不替换
import re
aa = '简直,,,,无语。。。。极了!!!'
a = re.sub('[,。!]+', lambda x: x[0][0], aa)
print(a)
headers = '''
GET /Yellow_python HTTP/1.1
Connection: keep-alive
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
'''
d = re.sub('(.+?): (.+)',
lambda x: "'{}': '{}',".format(x.group(1), x.group(2)),
headers)
print(d)
import re
s = 'i o u! u 2?'
s = re.sub('([.!?])', ' \\1', s) # re.sub(r'([.!?])', r' \1', s)
print(s)
i o u ! u 2 ?
import re
text = '鸡蛋10元6个,咸蛋9元11个'
pattern = '(?P\d+)元(?P\d+)个'
ls = re.findall(pattern, text)
print(ls)
[(‘10’, ‘6’), (‘9’, ‘11’)]
import re
text = '鸡蛋10元6个'
pattern = '(?P\d+)元(?P\d+)个' # 给分组命名
SRE_Match = re.search(pattern, text)
print(SRE_Match.groups())
print(SRE_Match.group('cost'))
print(SRE_Match.group('count'))
(‘10’, ‘6’)
10
6
参数 | 解析 |
---|---|
pattern | 正则中的模式字符串 |
repl | 替换的字符串,也可为一个函数 |
string | 要被查找替换的原始字符串。 |
count | 替换的最大次数,默认全部替换 |
import re
text = '9-12k/月'
pat = '(?P\d+)'
def double(re_obj):
salary = int(re_obj.group('digit'))
return str(salary * 2)
rs = re.sub(pat, double, text)
print(rs)
18-24k/月