我开始学习Python,但我在使用正则表达式方面遇到了一些困难。
我需要执行以下任务:
有一个变量MAX:
Max = "Max_Total:5 ,MAX_MAN:6 ,MAX_WOMEN:7 ,RELATION: In Relationship"1)我需要在每个w+_?w+中添加双引号。
For example: "Max_Total"2)我需要在字符串的开头和结尾添加大括号。
For example: {Max_Total:5 ,MAX_MAN:6 ,MAX_WOMEN:7 ,RELATION: In Relationship}因此,我需要得到以下结果:
{"Max_Total":5 ,"MAX_MAN":6 ,"MAX_WOMEN":7 ,"RELATION": In Relationship}我尝试了以下代码,它工作,但我认为我的解决方案是糟糕的。有没有人可以教我其他的解决方案(最好使用RE)?
Max = "Max_Total:5 ,MAX_MAN:6 ,MAX_WOMEN: 7,RELATION: In Relationship"
import re
Max1 =re.sub(r'^',"\"",Max)
Max2 =re.sub(r':',"\":",Max1)
Max3 =re.sub(r'^',"{",Max2)
Max4 =re.sub(r'$',"}",Max3)
Max5 =re.sub(r',',",\"",Max4)
print Max5非常感谢!
发布于 2017-11-12 22:10:53
我不认为正则表达式在所有修改中都是最好的方式。但是,您可以使用以下代码
Max = "Max_Total:5 ,MAX_MAN:6 ,MAX_WOMEN: 7,RELATION: In Relationship"
Max = re.sub(r'^','{',Max)
Max = re.sub(r'$','}',Max)
# The following replaces Max_Total: for example with "Max_Total:"
Max = re.sub(r'([a-zA-Z_]+):', r'"\1":', Max)我认为更好的解决方案是:
Max = "Max_Total:5 ,MAX_MAN:6 ,MAX_WOMEN: 7,RELATION: In Relationship"
Max = re.sub(r'([a-zA-Z_]+):', r'"\1":', Max)
Max = '{' + Max + '}'\1指的是括号内的([a-zA-Z_]+).[a-zA-Z_]匹配任何字母字符或下划线的group 1。https://stackoverflow.com/questions/47249530
复制相似问题