【问题标题】:Find a specific pattern (regular expression) in a list of strings (Python)在字符串列表中查找特定模式(正则表达式)(Python)
【发布时间】:2015-06-24 03:41:17
【问题描述】:

所以我有这个字符串列表:

teststr = ['1 FirstString', '2x Sec String', '3rd String', 'x forString', '5X fifth']

我需要做的是从这个列表中获取所有包含以下内容的元素:

number + "x" 

number + "X"

例如,如果我有这个功能

def SomeFunc(string):
    #do something

我想得到这样的输出:

2x Sec String
5X fifth

我在 StackOverflow 的某个地方找到了这个函数:

def CheckIfContainsNumber(inputString):
    return any(char.isdigit() for char in inputString)

但这会返回每个有数字的字符串。

如何扩展函数以获得所需的输出?

【问题讨论】:

    标签: python regex string list


    【解决方案1】:

    re.search 函数与列表推导一起使用。

    >>> teststr = ['1 FirstString', '2x Sec String', '3rd String', 'x forString', '5X fifth']
    >>> [i for i in teststr if re.search(r'\d+[xX]', i) ]
    ['2x Sec String', '5X fifth']
    

    \d+ 匹配一位或多位数字。 [xX] 匹配大小写 x

    通过将其定义为单独的函数。

    >>> def SomeFunc(s):
            return [i for i in s if re.search(r'\d+[xX]', i)]
    
    >>> print(SomeFunc(['1 FirstString', '2x Sec String', '3rd String', 'x forString', '5X fifth']))
    ['2x Sec String', '5X fifth']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多