正規表現でできること/すべきことは何ですか?[閉まっている]


13

私は最近、正規表現を学び、それらを書く/使うのが大好きです。アイデアとそれらを使用する機会を探していますが、人々からよく警告されるように、万能ツールとしてそれらを使いすぎたくありません。

どのような種類の正規表現を使用する必要があり、どこで使用しないのですか?(明らかなことは別として:HTML解析)。


6
必要な引用:問題に直面したときに、「私は知っている、正規表現を使用する」と思う人もいます。現在、2つの問題があります。(ただし、文脈についてはcodinghorror.com/blog/2008/06/…を参照)
スティーブンA.ロウ

1
正規表現でできることは、正規言語の単語を認識することだけです。とても簡単です。このため、プログラマーは言語クラスの概念を持ち、通常の言語を識別することができる必要があります。
インゴ

2
基本的に、ifin を使用する場合は正規表現を使用しません。

回答:


4

それらが輝く場所は、明確に定義された簡単な文字列の定義があるため、(a)入力の一部がパターンに一致することを確認し、(b)その入力からパターンのすべての部分を抽出し、単一の正規表現操作で。

たとえば、先日、2つの1文字の識別子(1つは3つのオプションがあり、もう1つは任意のアルファである可能性があります)、日付、2桁の数字で構成される特定のコードを処理する必要がありました:MR_20110508_01

4つの名前付きグループを使用した簡単な正規表現により、1回の呼び出しで着信コードが有効であることを確認し、4つの名前付きグループにアクセスして4つの部分を引き出すことができました。

正規表現のターゲットが含むことができる任意のコンテンツ、またはコンテンツの他の部分に依存するルールが多いほど、Jamie Zawinskiの「2つの問題がある」という地獄に向かっている可能性が高くなります。


15

ほとんどの文字列照合タスクは、正規表現の恩恵を受けることができます。マッチングの呼び出しを停止し、解析の呼び出しを開始すると、正規表現はあまり役に立ちません。通常、ネストや、正規表現では処理できないその他の再帰が関係している場合、解析と呼ばれる傾向があるためです。

おそらく私が最も利用している場所は、利用できることに気づいていない人もいますが、何かを探しているときは私のエディターの中にあります。彼らは私のコーディングが速くなるのを助けるほど頻繁にそれを私のコードに入れません。


4
+1、「マッチングから構文解析に移行するとき」はそれを配置するのに最適な方法です。
Carson63000

4

私の答えは否定的です:正規表現でパーサー(HTMLなど)を記述しようとしないでください。それらを使ってあらゆる種類の有用な情報を抽出できますが、できないことがいくつかあります。SQL、C、Pythonと同等の正規表現を理解することを検討します。これは、現代のコンピューティングの構成要素の1つです。


CとPythonは、最新のコンピューティングの構成要素ではありません;)
クリック11年

1
最初にリンクするための+1は、まあ、その ...ことです
ジョンパーディ

1
@Click:実際にはそうです。Cの強固な基礎なしでLinuxカーネルで何でも試してみてください。Pythonについては... IMNSHOは、30を超える言語での経験に基づいて、2番目にある言語のくだらないものを打ち負かしています。
ピーターローウェル

4

正規表現が機能しないという話は、ネストできるものが必要なときです。たとえば、プログラミング言語(またはHTML / XML /など)。ネストを開始したら、状態を保存し、状態マシンを使用する必要があります。

また、ここで電子メールの正規表現を見ると、正規表現がすぐに読めなくなることがわかります。正規表現を使用できる場合でも、文法を使用すると事態がより明確になる場合があります。単純な正規表現を使用しても、読みにくい/保守しにくいものをすぐに作成できます。

さらに、正規表現を必要としない多くのタスクがあります。たとえば、正規表現を使用してコンマ区切りフィールドの文字列を分割できますが、string.split( "、")と言う方がはるかに簡単です。通常、正規表現では複数のステップ/検索が必要ですが、分割では1つのステートメントで実行されます。また、単純な検索の場合、組み込みの検索ルーチンを使用する方が効率的で明確です。


1
余談ですが、全体を解析する必要がない場合は、HTMLで正規表現を使用できます。たとえば、特定の形式のページがテーブルにある場合は、おそらく正規表現を使用してすばやく解析できます。ただし、任意にネストできるHTMLドキュメントを理解する必要がある場合は、忘れてください。たとえば、コメント内の<head>タグ、または間違って本文の<td>タブ内にあるのでしょうか?わかりません...ネストの1層または2層については、正規表現を作成できます。本当の問題は、arbitrary意的なネストです...一般的なケースでは、そのための式を作成することはできません
...-Cervo

3

間のスラッシュというI通知すべきでは二つの違い:あなたの質問に、それの最も重要な部分を強調していません。

正規表現を使用して実行することはできませんが、正規表現を使用して実行することはできません。1つの例は、次の正規表現を使用しています。

^([07]|6[29]*3|(5|6[29]*[18])(4|5[29]*[18])*(6|5[29]*3)|(4|6[29]*[07]|(5|6[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*([29]|[18][29]*3|([07]|[18][29]*[18])(4|5[29]*[18])*(6|5[29]*3))|(3|6[29]*6|(5|6[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(4|6[29]*[07]|(5|6[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*(5|4[29]*3|(3|4[29]*[18])(4|5[29]*[18])*(6|5[29]*3)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*([29]|[18][29]*3|([07]|[18][29]*[18])(4|5[29]*[18])*(6|5[29]*3)))|([29]|6[29]*5|(5|6[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|(4|6[29]*[07]|(5|6[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))|(3|6[29]*6|(5|6[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(4|6[29]*[07]|(5|6[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*([07]|4[29]*5|(3|4[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))))(3|[07][29]*5|(6|[07][29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))|(4|[07][29]*6|(6|[07][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*([07]|4[29]*5|(3|4[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))))*([18]|[07][29]*3|(6|[07][29]*[18])(4|5[29]*[18])*(6|5[29]*3)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*([29]|[18][29]*3|([07]|[18][29]*[18])(4|5[29]*[18])*(6|5[29]*3))|(4|[07][29]*6|(6|[07][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*(5|4[29]*3|(3|4[29]*[18])(4|5[29]*[18])*(6|5[29]*3)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*([29]|[18][29]*3|([07]|[18][29]*[18])(4|5[29]*[18])*(6|5[29]*3))))|([18]|6[29]*4|(5|6[29]*[18])(4|5[29]*[18])*([07]|5[29]*4)|(4|6[29]*[07]|(5|6[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(3|[18][29]*4|([07]|[18][29]*[18])(4|5[29]*[18])*([07]|5[29]*4))|(3|6[29]*6|(5|6[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(4|6[29]*[07]|(5|6[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*(6|4[29]*4|(3|4[29]*[18])(4|5[29]*[18])*([07]|5[29]*4)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(3|[18][29]*4|([07]|[18][29]*[18])(4|5[29]*[18])*([07]|5[29]*4)))|([29]|6[29]*5|(5|6[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|(4|6[29]*[07]|(5|6[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))|(3|6[29]*6|(5|6[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(4|6[29]*[07]|(5|6[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*([07]|4[29]*5|(3|4[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))))(3|[07][29]*5|(6|[07][29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))|(4|[07][29]*6|(6|[07][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*([07]|4[29]*5|(3|4[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))))*([29]|[07][29]*4|(6|[07][29]*[18])(4|5[29]*[18])*([07]|5[29]*4)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(3|[18][29]*4|([07]|[18][29]*[18])(4|5[29]*[18])*([07]|5[29]*4))|(4|[07][29]*6|(6|[07][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*(6|4[29]*4|(3|4[29]*[18])(4|5[29]*[18])*([07]|5[29]*4)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(3|[18][29]*4|([07]|[18][29]*[18])(4|5[29]*[18])*([07]|5[29]*4)))))(5|3[29]*4|([29]|3[29]*[18])(4|5[29]*[18])*([07]|5[29]*4)|([18]|3[29]*[07]|([29]|3[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(3|[18][29]*4|([07]|[18][29]*[18])(4|5[29]*[18])*([07]|5[29]*4))|([07]|3[29]*6|([29]|3[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([18]|3[29]*[07]|([29]|3[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*(6|4[29]*4|(3|4[29]*[18])(4|5[29]*[18])*([07]|5[29]*4)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(3|[18][29]*4|([07]|[18][29]*[18])(4|5[29]*[18])*([07]|5[29]*4)))|(6|3[29]*5|([29]|3[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([18]|3[29]*[07]|([29]|3[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))|([07]|3[29]*6|([29]|3[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([18]|3[29]*[07]|([29]|3[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*([07]|4[29]*5|(3|4[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))))(3|[07][29]*5|(6|[07][29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))|(4|[07][29]*6|(6|[07][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*([07]|4[29]*5|(3|4[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))))*([29]|[07][29]*4|(6|[07][29]*[18])(4|5[29]*[18])*([07]|5[29]*4)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(3|[18][29]*4|([07]|[18][29]*[18])(4|5[29]*[18])*([07]|5[29]*4))|(4|[07][29]*6|(6|[07][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*(6|4[29]*4|(3|4[29]*[18])(4|5[29]*[18])*([07]|5[29]*4)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(3|[18][29]*4|([07]|[18][29]*[18])(4|5[29]*[18])*([07]|5[29]*4)))))*(4|3[29]*3|([29]|3[29]*[18])(4|5[29]*[18])*(6|5[29]*3)|([18]|3[29]*[07]|([29]|3[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*([29]|[18][29]*3|([07]|[18][29]*[18])(4|5[29]*[18])*(6|5[29]*3))|([07]|3[29]*6|([29]|3[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([18]|3[29]*[07]|([29]|3[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*(5|4[29]*3|(3|4[29]*[18])(4|5[29]*[18])*(6|5[29]*3)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*([29]|[18][29]*3|([07]|[18][29]*[18])(4|5[29]*[18])*(6|5[29]*3)))|(6|3[29]*5|([29]|3[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([18]|3[29]*[07]|([29]|3[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))|([07]|3[29]*6|([29]|3[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([18]|3[29]*[07]|([29]|3[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*([07]|4[29]*5|(3|4[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))))(3|[07][29]*5|(6|[07][29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))|(4|[07][29]*6|(6|[07][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*([07]|4[29]*5|(3|4[29]*[18])(4|5[29]*[18])*([18]|5[29]*5)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(4|[18][29]*5|([07]|[18][29]*[18])(4|5[29]*[18])*([18]|5[29]*5))))*([18]|[07][29]*3|(6|[07][29]*[18])(4|5[29]*[18])*(6|5[29]*3)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*([29]|[18][29]*3|([07]|[18][29]*[18])(4|5[29]*[18])*(6|5[29]*3))|(4|[07][29]*6|(6|[07][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|(5|[07][29]*[07]|(6|[07][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))([18]|4[29]*6|(3|4[29]*[18])(4|5[29]*[18])*([29]|5[29]*6)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*(5|[18][29]*6|([07]|[18][29]*[18])(4|5[29]*[18])*([29]|5[29]*6)))*(5|4[29]*3|(3|4[29]*[18])(4|5[29]*[18])*(6|5[29]*3)|([29]|4[29]*[07]|(3|4[29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))(6|[18][29]*[07]|([07]|[18][29]*[18])(4|5[29]*[18])*(3|5[29]*[07]))*([29]|[18][29]*3|([07]|[18][29]*[18])(4|5[29]*[18])*(6|5[29]*3))))))*$

これは、7で割り切れる10進数に一致します(それらのみ; source)。


4
その正規表現を解析するための正規表現はありますか?私はそうすることができないからです。
-svick

1
@svick任意の正規表現は、正規表現では解析できません。しかし、あなたはすでにそれを知っていたと思います。
ジャストソルト

2

ここには厳格なルールはありませんが、ライブラリを使用できないタスクを含むテキストは正規表現に適しています。また、使用している言語の正規表現サポートにも大きく依存します。Perlは正規表現を広範囲にサポートしていますが、javaはそれほどサポートしていません。したがって、perlではjavaよりも正規表現を使用することが期待されます。


1
Java正規表現のサポートはそれほど悪くはありません。おそらくperlほど良くはありませんが、99.99%の時間で大丈夫です。
インゴ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.