2016-11-24 6 views
0

文字列の長さは255文字以内で指定してください。 次の正規表現は私が生成された文字列の長さを制御することができない文字列を生成するためexrex.getone(REGULAR_EXPRESSION)関数を使用しています例 -Python - 正規表現から指定された長さのランダムな文字列を生成する

^([a-zA-Z0-9]{1}((-|[a-zA-Z0-9])*[a-zA-Z0-9])*[.])*[a-zA-Z]{1}((-|[a-zA-Z0-9])*[a-zA-Z0-9])*\.?$ 

のために採取することができます。
正規表現を満たす目的の長さの文字列を生成する方法は?
今まで私はこの条件を満たす回答は見ていません。

+1

[正規表現をPythonで元に戻す]の可能な複製(http://stackoverflow.com/questions/492716/reversing-a-regular-expression-in-python) – shadow0359

+0

@ shadow0359私はすでに答えをチェックしています(Pythonの正規表現を逆にする)が、条件を満たしていません。だからあなたは重複としてそれを削除してもらえますか?ありがとうございます。 – MadhuSudan

+1

exrexはアサーションをサポートしているので、正規表現の前に '^(?=。{0,255} $)...'のように接頭辞を付けることができますか? –

答えて

0

exrexウェブサイトから:

無限マッチング文字列(例えば:[-Z] +)を有する正規表現があり、これらの場合にexrex無限大部分の最大長さを制限します。

とコード自体:

418 def getone(regex_string, limit=20): 
419  """Returns a random matching string to a given regular expression 
420  """ 
421  return _randone(parse(regex_string), limit) 

ので制限キーワードがあります。私はこれが文字列全体または無限部分を制限するかどうかを確かめることはできませんでしたが、私はそれが後者であると思います。これを4のように小さくすることを試みてください。

+0

偉大な情報をありがとう、しかし、私は本当に驚いています。正規表現^ sip:\ S + $ exrexはstring _sip:_を生成している間違っています。私はこれが現在の問題に関連しているのではなく、ただ質問していることを知っています。 regexに推奨されるexrex()のような関数が無効なstring.thanksを生成する可能性があります。 – MadhuSudan

+0

あなたが書いた正規表現は次のことを意味します:行の先頭から "sip:"を書いて、最後まで空白を書いてください。私はチェックし、exrexは共通の文字セットの 'not'バージョンをサポートしないかもしれないので、 '\ S'は実際には動作しないかもしれません。代わりに[^ \ s]を使う - 私のために働いた。 – kabanus

+0

あなたは**^\ sip:\ S + $ **を意味しますが、これは私のためには機能しませんでした。あなたは共有してください、あなたはどの正規表現を使用しましたか? そして、これらのタイプの正規表現がサポートされている正規表現ジェネレータを共有できますか? 実際に私のスクリプトでは、私はそのような正規表現の100からの文字列を生成しているので、私はそれらを手動で編集することはできません。私は、この場合正常に動作することができるこれらの正規表現からいくつかの文字列ジェネレータを使用する必要があります。 ありがとうございます。 – MadhuSudan

関連する問題