1

我想检查一个字符串是否与正则表达式描述的字符串系列的一部分匹配。

所需的行为类似于:

>>> re.findall("hi", "h[ia]t")
["hi"]
>>> re.findall("at", "h[ia]t")
["at"]
>>> re.findall("hat", "h[ia]t")
["hat"]
>>> re.findall("cat", "h[ia]t")
[]

但是 re.findall() 的第二个参数是按字面解释的。

当然,在上面的简单示例中,我可以显式地检查“hit”和“hat”,但更复杂的表达式看起来很笨拙。

4

1 回答 1

3

正则表达式不是生成器。您可以将字符串与正则表达式进行匹配,但不能构造与给定正则表达式匹配的所有字符串。您可能需要类似 shell 的大括号扩展,但我认为 stdlib 中没有提供类似的东西(fnmatch很接近但只提供匹配)。

于 2013-02-15T01:46:57.790 回答