私は正規表現を学び始めています。私は知りたいと思います:どのケースで使用するのが良いですか?正規表現を使用する方がよいケース
答えて
正規表現は、テキストコンテンツに適用できるパターンマッチングの形式です。たとえば、DOSのワイルドカードを考えてみましょうか?ファイルを検索しているときに使用できる*と*。 。これは、RegExpの非常に限定されたサブセットの一種です。例えば、 "fn"で始まり、1から4のランダムな文字が続き、 "ht.txt"で終わるすべてのファイルを検索する場合は、通常のDOSワイルドカードではできません。一方、RegExpは、その複雑なパターンを扱うことができます。
正規表現は、短期的に、効果的に
- ハンドルデータ
- 検索方法で、文字列
- を置き換え、拡張文字列処理を提供します。
多くの場合、正規表現では、組み込みの文字列メソッドやプロパティなどの他の機能は、複雑な関数やループで使用する場合にのみ行うことができます。
複雑な文字列パターンを検索/置換/検証しようとしているとき。
パフォーマンスを向上させる必要がある場合は、コードを書くために正規表現を使わないでください。たとえば、非常に大きなCSVファイルの解析です。
正規表現は、テキストを解析するためのdsl(ドメイン固有の言語)です。ちょうどxpathがxmlをトラバースするためのdslです。基本的に汎用言語の中にあるミニ言語です。狭い目的に特化しているので、非常に少量のコードでかなりの成果をあげることができます。正規表現によく使用されるのは、文字列が電子メールアドレス、電話番号、ssnなどであるかどうかをチェックすることです。
文字列(preg_match)の比較、部分文字列の置換(sed、preg_replace)ファイル内の文字列を検索する(grep)、文字列を分割する(preg_split)などがあります。
これは非常に柔軟で広範なパターン表現言語であり、知っておくと非常に便利です。
BUT!彼らがポーカーについて言うように、学ぶのはとても簡単ですが、マスターするのは非常に難しいです。
私はちょうどRegExのために完璧だと思ったquestionを見つけました。見て、自分で決めてください。
正規表現が>> NOT < <の場合もあります(一般的には常に例外があります)。
- 解析HTML
- DOMパーサはほとんど常により良い選択である上記の例ではXML
の解析。文法は複雑で、ネストされたタグのようにエッジケースが多すぎます。
今後のメンテナンスプログラマー(あなたの可能性もあります)についても考慮してください。コメントやよく選択されたメソッド/定数/変数名は、特に正規表現に慣れていない開発者にとって、世界を変えることができます。
正規表現は、フリーテキスト入力のフォーマットを検証するのに特に便利です。もちろん、データの正当性を検証することはできません。また、特定のタイプの値(電話番号や郵便番号など)の地域のバリエーションを覚えておく必要があります。しかし、有効な入力をテキストパターンとして定義することができる場合、正規表現はバリデーションの迅速な作業を行います。
- 1. .replace()を使用するよりも正規表現が速い
- 2. 正規表現:どのように正規表現を使用することにより、引用符
- 3. 正規表現を使用してコンテンツを取得する正規表現
- 4. Java正規表現 - バックスラッシュの使い方
- 5. ある正規表現を含むが別の正規表現を除外する正規表現
- 6. OR文を使って同様のケースをチェックする正規表現
- 7. 正規表現の正規表現
- 8. 正規表現 - 正規表現
- 9. 正規表現は、私が「/」のための正規表現を適用しようとしています、コメント
- 10. 正規表現を使用した正規表現の複数パターン
- 11. ドットマッチオールモードを使用した正規表現
- 12. lsで正規表現を使用
- 13. javascriptを使用した正規表現
- 14. jQueryセレクター:contains - 正規表現を使用
- 15. 正規表現を使用したラクダルート
- 16. preg_matchを使用した正規表現
- 17. WatiNで正規表現を使用する方法
- 18. Clojure:正規表現で変数を使用する方法は?
- 19. proftpdのディレクトリパスに正規表現を使用する方法
- 20. AngularJSで正規表現を使用する方法$ httpBackend ExpectGET
- 21. 正規表現とハイパーリンクを解析する正規表現
- 22. preg_replace、正規表現を取得する正規表現
- 23. 正規表現をエスケープする正規表現
- 24. JavaScriptの正規表現をPHPの正規表現にする
- 25. 正規表現を評価する正規表現
- 26. 正規表現を取得する正規表現
- 27. 文字列または正規表現のリテラルにない正規表現と一致する正規表現
- 28. Rubyの正規表現のハッシュで正規表現を統合する方が速いのですか?
- 29. test()を使用した正規表現によるクレジットカード確認
- 30. Rubyのケースで正規表現で名前付きキャプチャを使用するときはいつですか?
+1非常に良いアナロジー! –