首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中使用正则表达式在字符串中添加不同的符号

在Python中使用正则表达式在字符串中添加不同的符号
EN

Stack Overflow用户
提问于 2017-11-12 21:45:05
回答 1查看 44关注 0票数 0

我开始学习Python,但我在使用正则表达式方面遇到了一些困难。

我需要执行以下任务:

有一个变量MAX:

代码语言:javascript
运行
复制
Max = "Max_Total:5 ,MAX_MAN:6 ,MAX_WOMEN:7 ,RELATION: In Relationship"

1)我需要在每个w+_?w+中添加双引号。

代码语言:javascript
运行
复制
For example: "Max_Total"

2)我需要在字符串的开头和结尾添加大括号。

代码语言:javascript
运行
复制
For example: {Max_Total:5 ,MAX_MAN:6 ,MAX_WOMEN:7 ,RELATION: In Relationship}

因此,我需要得到以下结果:

代码语言:javascript
运行
复制
{"Max_Total":5 ,"MAX_MAN":6 ,"MAX_WOMEN":7 ,"RELATION": In Relationship}

我尝试了以下代码,它工作,但我认为我的解决方案是糟糕的。有没有人可以教我其他的解决方案(最好使用RE)?

代码语言:javascript
运行
复制
 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

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-11-12 22:10:53

我不认为正则表达式在所有修改中都是最好的方式。但是,您可以使用以下代码

代码语言:javascript
运行
复制
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)

我认为更好的解决方案是:

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47249530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档