Python 从字符串和转换列表中删除括号和特殊字符(值以逗号分隔)
我有一根像下面这样的线 {[Utissa.du domaine,jira用户,汇流用户,jira开发商, 印度产品团队,“测试-1”和“产品组”,Atlassian仓库, awspreprod readonly、awsprod readonly、awspreprod rddevops、, awsrddev readonly、awsrddev rddevops、test.user]} 现在,我想通过删除(){}'特殊字符来列出这些元素 我知道我可以使用一些正则表达式或下面的方法删除括号Python 从字符串和转换列表中删除括号和特殊字符(值以逗号分隔),python,regex,algorithm,list,logic,Python,Regex,Algorithm,List,Logic,我有一根像下面这样的线 {[Utissa.du domaine,jira用户,汇流用户,jira开发商, 印度产品团队,“测试-1”和“产品组”,Atlassian仓库, awspreprod readonly、awsprod readonly、awspreprod rddevops、, awsrddev readonly、awsrddev rddevops、test.user]} 现在,我想通过删除(){}'特殊字符来列出这些元素 我知道我可以使用一些正则表达式或下面的方法删除括号 s = '
s = 'Barack (of Washington)'
bad_chars = '(){}<>'
s.translate(string.maketrans("", "", ), bad_chars)
s='Barack(华盛顿州)'
坏字符=“(){}”
s、 translate(string.maketrans(“,”,),坏字符)
但我想删除额外的或多个空间,如果有A、B、C、C,那么我也把它看作是4个元素,不管它是A还是,
预期产出: [Ussisa.dudomaine、jira用户、汇流用户、jira开发人员、ProductTeamIndia、test-1、ProductGroup、Atlassian Stash、awspreprod只读、awspreprod只读、awspreprod rddevops、awsrddev只读、awsrddev rddevops、test.user] 有什么好主意吗 谢谢!函数解决方案:import re
s = '''{[Utilisa. du domaine, jira-users, confluence-users, jira-developers, Product Team India, 'test-1', "Product Group", Atlassian-Stash, awspreprod-readonly, awsprod-readonly, awspreprod-rddevops, awsrddev-readonly, awsrddev-rddevops, test.user]'''
result = [i for i in re.split(r'\s*[{}<>\[\],;\'"]\s*', s) if i]
print(result)
公布预期的最终结果result@RomanPerekhrest感谢您的指点。建议的更改已完成:)为什么不将不需要的字符添加到您的
bad\u chars
(例如bad\u chars=“(){}\\”
)?@RomanPerekhrest他是对的。有什么好的建议吗?@I'L'I应用regex并使用单个语句转换为list是我想要的。请查看下面的答案。re.split
是否默认添加单报价?转换为字符串时?因为在正则表达式中,您已经删除了”
。如果我错了,让我改正!你的解决方案是完美的!谢谢:)@JayeshDhandha,不客气(注意,您的输出应该包含引用字符串作为列表项)此正则表达式正在从所有地方删除括号。如果我只想从开头和结尾删除方括号,我应该修改什么?@JayeshDhandha,你可以自由地创建一个新问题和新要求。谢谢
['Utilisa. du domaine', 'jira-users', 'confluence-users', 'jira-developers', 'Product Team India', 'test-1', 'Product Group', 'Atlassian-Stash', 'awspreprod-readonly', 'awsprod-readonly', 'awspreprod-rddevops', 'awsrddev-readonly', 'awsrddev-rddevops', 'test.user']