正規表現を学ぶとき、どこから始めますか?良い基盤を築くことができるように、学ぶべき良いセットを探しています。私は記憶からすべてを知ることを期待していませんが、正しいことを学ぶことができれば-そしてそれらを十分に-私はこれについて良いスタートを切ることができます。
regexpressionsの学習を効率的に開始できるように、提案をお願いします。
正規表現を学ぶとき、どこから始めますか?良い基盤を築くことができるように、学ぶべき良いセットを探しています。私は記憶からすべてを知ることを期待していませんが、正しいことを学ぶことができれば-そしてそれらを十分に-私はこれについて良いスタートを切ることができます。
regexpressionsの学習を効率的に開始できるように、提案をお願いします。
ここから開始および終了:正規表現の習得 (第 3 版)
私はこのウェブサイトで知っている正規表現を学びました:http: //www.regular-expressions.info/
それは本当に有益で、理解しやすく、そして最も重要なことに、無料です!それは正規表現の専門家によって作られたので、恐れることは何もありません。:)
個人的には、ドキュメントから正規表現(python regex)を学びました
正規表現のテストでは、主にRubularを使用します。これを使用すると、テキスト ブロックに対して正規表現をすばやくチェックして、削除対象を確認できます。また、アプリケーションのテストに非常に役立つグループ化もサポートしています。
正規表現にはいくつかの規則がありますが、最も一般的なのは Perl、Python、Ruby などで使用される perl スタイルです。
乾杯。
C 構文のドキュメントに従うことができる場合は、「ed」プログラムの unix man ページを強くお勧めします。これは、unix/linux にアクセスできない場合でもネットで入手できます。これは、すべての正規表現バリアント (さまざまなプログラミング言語用) が開始された場所です。一度飲み込めば、どのバリアントにも簡単に適用できるようになります。unix/linux の「man ed」で、正規表現の部分を読んでください。または、Google で「man ed」を検索してください。
正規表現は、実際にはDFA、決定性有限オートマトンによって実装され、数学的には非決定性有限オートマトンとして説明することもできます。これらのモデルは非常に単純であり、その背後にあるロジックを取得するには、基本を学ぶだけでよいと思います。
記号Aのアルファベットがあります(例:A = {a、b})。実際のアプリケーションでは、多くの異なる文字(例:UTF-8)があります。次に、グラフにノードがあります。1つは開始ノードです。
これらのノードは、1文字の入力を消費する遷移を使用して接続でき、その後、新しいノード(または同じノード)に移動します。
したがって、一致するために3aと1bをとる正規表現が必要だとすると、次のDFAと見なすことができます。
start-> () -a-> () -a-> () -a-> () -b-> end
ループを許可すると、次のタイプの正規表現a *が得られ、aを使用することで同じノードにとどまることができます。http://en.wikipedia.org/wiki/Deterministic_finite_automatonをご覧ください
さまざまなプログラミング言語やテキストエンコーディングの実装の詳細にとらわれるのは賢明ではないと思います。最初にロジックを理解するのが最善であり、それから残りは単なる詳細です。
理論を学ぶ前に、たとえばpythons regex docsから始めて、微積分について知らずに数学の部分積分を開始することを比較します。それは魔法のように見えますが、実際にはそれほど難しくはなく、非常にエレガントで楽しいです。学び、理解する!
正規表現の構文は、通常、プログラミング言語間で一貫しています。ただし、実装は言語ごとに異なります。ridgerunner が言及した正規表現をマスターすることは、良い出発点です。