Python:如何从列表中检查字符串中的子字符串?

use*_*620 64 python string substring list

可能重复:
检查另一个字符串中是否存在多个字符串

我无法在Python的任何地方找到与此类似的代码:

基本上,我想检查列表中包含的子串的字符串.

Sve*_*ach 121

试试这个测试:

any(substring in string for substring in substring_list)
Run Code Online (Sandbox Code Playgroud)

它将返回True如果任何字符串中substring_list包含在string.

请注意,在链接问题中有一个类似于Marc Gravell答案的Python类似物:

from itertools import imap
any(imap(s.__contains__, substring_list))
Run Code Online (Sandbox Code Playgroud)

可能上面使用生成器表达式的版本更清晰.

  • @vagabond你可以使用`next(substring for substring_ in substring_list if substring in string)`,它将返回第一个匹配的子字符串,或者如果没有匹配则抛出`StopIteration`.或者使用一个简单的循环:`for substring in substring_list:if substring in string:return substring`. (6认同)
  • 有没有办法在返回True时获取子串? (4认同)
  • @newtover:[生成器表达式](http://docs.python.org/tutorial/classes.html#generator-expressions)没有方括号. (3认同)