使用 any() 在另一个字符串中搜索多个字符串

Searching for Multiple Strings within another String using any()

我目前正在使用 Python 3.4.2,但在尝试在另一个字符串中搜索多个字符串时没有得到预期的结果。

我创建了一个集合,其中包含字符串格式类似于 TEXT.NA[Y]ABC 的项目。例如,我试图仅捕获包含 .NA、.SA 或 .EU 的集合中的项目。

testset = set()
testset.add(('Blah','TEXT.NA[Y]ABC'))
testset.add(('Bleh','OTHER.AU[X]DEF'))
region = ['.NA', '.SA', '.EU']
for text,key in testset:
    if any(sym in region for sym in key):
        print(key)

我期待上面的内容在跳过 OTHER.AU[X]DEF 时打印 TEXT.NA[Y]ABC 想知道我在我的 iterable 中做错了什么。

谢谢!

您的会员检查有误。您需要检查 region 中的任何项目是否在 key:

>>> for text,key in testset:
...     if any(sym in key for sym in region):
...         print(key)
... 
TEXT.NA[Y]ABC