我需要匹配字符串"Johnson";以及";Jackson";,但不是字符串";杰森"使用Python时,我需要使用RegEx库中的函数findall。
我试过了:
a = "Jackson, Johnson, Jason"
b = re.findall("J*w{2}*son", a)
但它没有起作用!如果有人能帮上忙,我将不胜感激!
findall只使用字符串作为输入,而不使用列表。
您可能想要使用map
和re.match
或re.search
,例如:
此外,您的正则表达式中有多个重复符号,需要进行一些调整,这一个似乎适用于Jw{3}son
import re
a = ["Jackson", "Johnson", "Jason"]
c = list(map(lambda x: re.search("Jw{3}son",x), a))
print([i.string for i in c if i])
输出:
['Jackson', 'Johnson']
更新如果您的输入类型只是一个字符串,那么您的原始表达式就可以了,您只需要将正则表达式更改为上面的示例
import re
a = "Jackson Johnson Jason"
b = re.findall("Jw{3}son", a)
print(b)
输出:
['Jackson', 'Johnson']