代码之家  ›  专栏  ›  技术社区  ›  Jayesh Dhandha

从字符串和转换列表中删除括号和特殊字符(值以逗号分隔)

  •  1
  • Jayesh Dhandha  · 技术社区  · 8 年前

    我有一根像下面这样的绳子。

    [实用程序。du-domaine、jira用户、confluence用户、jira开发人员, 产品团队印度,“测试-1”,“产品组”,Atlassian Stash, awspreprod只读,awsprod只读,awspreprod rddevops, awsrddev readonly,awsrddev rddevops,test.user]

    现在我想通过删除 (){} C特殊字符。

    我知道我可以通过使用regex或下面的方法移除括号。

    s = 'Barack (of Washington)'
    bad_chars = '(){}<>'
    s.translate(string.maketrans("", "", ), bad_chars)
    

    但是我想删除多余的或多个空格,如果有类似a;b;c,c的东西,那么我也把它看作4个元素,不管是a;还是,

    预期输出:

    [utilisa.dudomaine,jira用户,confluence用户,jira开发者,productteamindia,test-1,productgroup,atlassian stash,awspreprod readonly,awsprod readonly,awspreprod rddevps,awsrddev readonly,awsrddev rddevps,test.user]

    有什么好主意吗?

    谢谢!

    1 回复  |  直到 8 年前
        1
  •  2
  •   RomanPerekhrest    8 年前

    re.split() 功能解决方案:

    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)
    

    输出:

    ['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']
    
    推荐文章