13.re正则局部替换字符串
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
# @Time : 2018/5/18 10:48
# @Author : N7053
# @File : test.py
# @Software: PyCharm
# @Desc :
"""
import re
import json
def match_case(word):
def replace(m):
text = m.group()
if text.isupper():
return word.upper()
elif text.islower():
return word.lower()
elif text[0].isupper():
return word.capitalize()
else:
return word
return replace
# 对于不符合json规范的数据进行匹配分组
pattern = re.compile(
r'^.*rp_role_name":\s*"(?P<role_name1>.*?)",.*role_name":\s*"(?P<role_name2>.*?)",.*role_name":\s*"(?P<role_name3>.*?)",.*role_name":\s*"(?P<role_name4>.*?)",.*')
# 对于需要替换的分组部分进行替换
def handle(match):
role_name1 = match.group(1).replace('\\', '\\\\').replace('\"', '\\\"')
role_name2 = match.group(2).replace('\\', '\\\\').replace('\"', '\\\"')
role_name3 = match.group(3).replace('\\', '\\\\').replace('\"', '\\\"')
role_name4 = match.group(4).replace('\\', '\\\\').replace('\"', '\\\"')
return match.group().replace(match.group(1), role_name1).replace(match.group(2), role_name2).replace(match.group(3),
role_name3).replace(
match.group(4), role_name4)
if __name__ == '__main__':
line = '''xxxxx'''
try:
print json.loads(line)
except Exception, e:
print e.message
content = re.sub(pattern, handle, line)
print json.loads(content)
s = "LOVE PYTHON, love python, Love Python"
print re.sub('python', match_case('money'), s, flags=re.IGNORECASE)
# LOVE MONEY, love money, Love Money
http://www.cnblogs.com/makexu/

浙公网安备 33010602011771号