python如何正则匹配的时候还能保证原来的格式

各位大虾好!

我有一个字符串是这样的:

mysql = {
host = “rm-bp116dn17141tx72j.mysql.rds.aliyuncs.com”,
port = 3306,
database = “jjfjj“,
username = “abcabc”,
password = “oalalal”,
}

— this is redis
redis = {
host = “127.0.0.1”,
port = 6379,
}

假设我现在只想要截取redis这一段的内容,于是我就这么写

data = "上面那段字符串" 
pattern = re.compile(‘redis = {’+'(.*?)’+’}’,re.S)
result = pattern.findall(data)
print result

效果是这样的:

['\r\n\thost = "127.0.0.1",\r\n\tport = 6379,\r\n']

但是我想要输出原来的格式:

redis = {
host = “127.0.0.1”,
port = 6379,
}

请问我该怎么办?

阅读 2.1k
1 个回答
import re


data = '''
redis = {
host = "127.0.0.1",
port = 6379,
}
'''

pattern = re.compile('(redis = {(.*?)})', re.S)

result = pattern.findall(data)[0][0]

print(result)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题