2016-12-07 12 views
-4

を引き起こしている誰もが
https://regex101.com/r/ApWCG0/1
を見てくださいすることができ、それがタイムアウトを与えるものではありませんか、無限ループが発生しないように正規表現を修正しますか?
私はnodejsでそれをテストし、無限ループを取得し、RegexテストWebサイトでタイムアウトになっています。
私はstackoverflowや他のウェブサイトでしばらくそれを探していましたが、見つけられませんでした。このスレッドに重複がある場合は、申し訳ありません。
メール正規表現は無限ループ

私の電子メールの正規表現は [a-zA-Z0-9_\-.][email protected][a-zA-Z0-9\-]+\.[a-zA-Z0-9\-.]+

ホープ誰かがこの介して取得します。

更新
[a-zA-Z0-9_\-.]{2,64}@[a-zA-Z0-9\-]{2,64}\.[a-zA-Z0-9\-.]{2,64}
これは、ほとんどのケースをカバーしています。私は文字の数を制限しています。

+0

ここに行ってください:http://emailregex.com/ – garglblarg

+0

@garglblarg ok、私はそれを見ていますが、なぜタイムアウトや無限ループを与えるのか説明できますか? –

+0

@ garglblarg私は[http://emailregex.com/email-extractor-tool/](http://emailregex.com/email-extractor-tool/)と同じ内容のウェブサイトからメールを抽出しようとしましたが、これは行っています無限ループでこの場合、何がうまくいくのでしょうか? –

答えて

1

あなたの正規表現をチェックしたところ、非常に高い文字長のという単一の単語[]を渡すと、正規表現がチェックされずにタイムアウトエラーが発生することが分かりました。

例えば:https://regex101.com/r/sjvQ7Z/1

そして、私はあなたのテスト文字列からその単語を削除したときに、あなたのexpresionが正常に動作しています。

例えば:https://regex101.com/r/lszdaL/1

+0

私は同意しますあなたよ。私は入力を制御していないので、この[[a-zA-Z0-9 _ \ - 。] {2,64} @ [a-zA-Z0-9 \ - ] {2,64 } \。[a-zA-Z0-9 \ - 。] {2,64} '。あなたが言及したポイントは、問題の正確な言葉です。私はそれを感謝します。それは助けになった! –

0

あなたが原因943k文字が含まれているチャットデータダンプの壊滅的なバックトラックを経験しました。ただそれを削除すると正常に動作します。

+0

さて、バックトラックは問題の技術的定義だと思います。あなたのご意見ありがとうございます。 –

関連する問題