重複の可能性:
Pythonで正規表現を逆にする
私はそれよりも簡単に聞こえる問題に遭遇したと思います...私はあまりよくわかりません。正規表現を定義し、それに一致するいくつかの文字列を作成したいと思います。
この機能を備えたインポート可能なモジュールはありますか? re.search
またはre.match
を使用したブルートフォースアプローチではないことが望ましい。それを行うには、もっとエレガントな方法が必要です。
私は Pythonでランダムな文字列を生成する のための小さなヘルパーライブラリに取り組んできました
これには、正規表現から文字列を作成できるメソッドxeger()
が含まれています。
>>> import rstr
>>> rstr.xeger(r'[A-Z]\d[A-Z] \d[A-Z]\d')
u'M5R 2W4'
現在、最も基本的な正規表現で機能します。
Exrexモジュールはこれを行います: https://github.com/asciimoo/exrex 。
一部の正規表現では、可能な文字列のリストが無限になる場合があります。例えば:
a*
含む
a
aa
aaa
したがって、特定の正規表現のすべての文字列を生成する方法はありません。