【问题标题】:Regex that would give certain words python正则表达式会给出某些单词 python
【发布时间】:2015-10-11 14:21:40
【问题描述】:

我正在寻找一个正则表达式,它给出以字母、数字或下划线 ('_') 开头的单词。它只能在单词之间包含点 ('.') 而不是在末尾,并且应该删除所有其他特殊字符。 例如

WARC-_Target-URI: http://www.allchocolate.com/health/basics/

应该给

WARC、_Target、URI、http、www.allchocolate.com、健康、基础知识

我们将不胜感激。

【问题讨论】:

    标签: python regex split


    【解决方案1】:

    你在这里:

    from re import findall
    
    print findall(r'\w[\w.]*\w', 'WARC-_Target-URI: http://www.allchocolate.com/health/basics/')
    

    ['WARC', '_Target', 'URI', 'http', 'www.allchocolate.com', 'health', 'basics']

    与其他解决方案不同,这适用于任何情况(不仅仅是您发布的示例)。

    【讨论】:

    • 几乎是正确的。这个解决方案只有 1 个问题。它还在末尾给出带有点('。')的单词。例如“对你有好处”。应该给'good','for','you',但它是给'good','for','you'。
    【解决方案2】:
    import re
    test = "WARC-_Target-URI: http://www.allchocolate.com/health/basics/"
    print re.findall(r"[\w'.]+", test)
    

    【讨论】:

      【解决方案3】:
      s = 'WARC-_Target-URI: http://www.allchocolate.com/health/basics/'
      
      parts = [x for x in re.split(r'[/:-]',s) if x]
      
      print(parts)
      
      ['WARC', '_Target', 'URI', ' http', 'www.allchocolate.com', 'health', 'basics']
      

      【讨论】:

        猜你喜欢
        • 2013-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-25
        • 1970-01-01
        • 2011-10-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多