gpt4 book ai didi

python - 在字符串列表 (Python) 中查找特定模式(正则表达式)

转载 作者:太空狗 更新时间:2023-10-30 02:19:29 30 4
gpt4 key购买 nike

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

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)

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

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

最佳答案

使用 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 - 在字符串列表 (Python) 中查找特定模式(正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29696641/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com