一种选择是仅使用正则表达式|字符尝试匹配系列中单词中的每个子字符串s(仍使用
str.contains)。
你可以通过将单词
searchfor与结合在一起来构造正则表达式|:
>>> searchfor = ['og', 'at']>>> s[s.str.contains('|'.join(searchfor))]0 cat1 hat2 dog3 fogdtype: object就像
@AndyHayden在下面的注释中指出的那样,请注意你的子字符串是否具有特殊字符,例如$和^你想在字面上进行匹配的字符。这些字符在正则表达式的上下文中具有特定含义,并且会影响匹配。
你可以通过转义非字母数字字符来使子字符串列表更安全
re.escape:
>>> import re>>> matches = ['$money', 'x^y']>>> safe_matches = [re.escape(m) for m in matches]>>> safe_matches['\$money', 'x\^y']
与结合使用时,此新列表中带有的字符串将逐字匹配每个字符
str.contains。



