在字符串列表中查找特定模式(正则表达式)(Python)
Posted
技术标签:
【中文标题】在字符串列表中查找特定模式(正则表达式)(Python)【英文标题】:Find a specific pattern (regular expression) in a list of strings (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
我在 *** 的某个地方找到了这个函数:
def CheckIfContainsNumber(inputString):
return any(char.isdigit() for char in inputString)
但这会返回每个有数字的字符串。
如何扩展函数以获得所需的输出?
【问题讨论】:
【参考方案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']
【讨论】:
以上是关于在字符串列表中查找特定模式(正则表达式)(Python)的主要内容,如果未能解决你的问题,请参考以下文章