web-dev-qa-db-ja.com

Python)の正規表現に一致する文字列を生成します

重複の可能性:
Pythonで正規表現を逆にする

私はそれよりも簡単に聞こえる問題に遭遇したと思います...私はあまりよくわかりません。正規表現を定義し、それに一致するいくつかの文字列を作成したいと思います。

この機能を備えたインポート可能なモジュールはありますか? re.searchまたはre.matchを使用したブルートフォースアプローチではないことが望ましい。それを行うには、もっとエレガントな方法が必要です。

16
wishi

私は Pythonでランダムな文字列を生成する のための小さなヘルパーライブラリに取り組んできました

これには、正規表現から文字列を作成できるメソッドxeger()が含まれています。

>>> import rstr
>>> rstr.xeger(r'[A-Z]\d[A-Z] \d[A-Z]\d')
u'M5R 2W4'

現在、最も基本的な正規表現で機能します。

25
bjmc

Exrexモジュールはこれを行います: https://github.com/asciimoo/exrex

10
asciimoo

一部の正規表現では、可能な文字列のリストが無限になる場合があります。例えば:

a*

含む

a
aa
aaa

したがって、特定の正規表現のすべての文字列を生成する方法はありません。

1
chrisaycock