【问题标题】:How to match a variable list of items separated by commas如何匹配以逗号分隔的可变项目列表
【发布时间】:2010-04-06 17:19:50
【问题描述】:

我想变成这样的东西

CS 240, CS 246, ECE 222, ... (more or less); Software Engineering students only

进入

('CS 240', 'CS 246', 'ECE 222', 'ECE 220')

在 Python 中,匹配单个课程的代码如下所示

>>> re.search('([A-Z]{2,5} \d{3})', 'SE 112').groups()
('SE 112',)

我更喜欢仅使用正则表达式的方法,因为我有一堆其他使用 '|' 的备用正则表达式将它们结合起来。但是,使用拆分的方法是可以接受的。

【问题讨论】:

    标签: python regex pattern-matching


    【解决方案1】:
    >>> a="CS 240, CS 246, ECE 222"
    >>> b=tuple(a.strip() for a in a.split(','))
    >>> b
    ('CS 240', 'CS 246', 'ECE 222')
    >>> 
    

    【讨论】:

      【解决方案2】:

      csv 标准库模块 (http://docs.python.org/library/csv.html) 不是您要找的吗?

      【讨论】:

        【解决方案3】:

        此方法使用正则表达式并匹配您的输入:

        >>> import re
        >>> re.findall("\w+\s\d+", "CS 240, CS 246, ECE 222")
        ['CS 240', 'CS 246', 'ECE 222']
        

        它不查找逗号。相反,它会查找 以外的任何内容:它首先匹配多个单词字符,然后是空格字符,然后是多个数字。 Findall 查找该模式的所有出现。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-09
          • 1970-01-01
          • 1970-01-01
          • 2013-01-16
          • 2015-10-27
          相关资源
          最近更新 更多