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() の 2 番目の引数は文字どおりに解釈されます。

もちろん、上記の単純な例では、"hit" と "hat" の両方を明示的にチェックできますが、より複雑な表現は扱いにくいと思われます。

4

1 に答える 1

3

正規表現はジェネレーターではありません。文字列と正規表現を一致させることはできますが、特定の正規表現に一致するすべての文字列を構築することはできません。おそらくシェルのようなブレース展開が必要ですが、そのようなものが stdlib で提供されているとは思いません (fnmatch近いですが、マッチングのみを提供します)。

于 2013-02-15T01:46:57.790 に答える