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号
浙公网安备 33010602011771号