5

私は正規表現を学び始めています、そして知りたいです:どちらの場合にそれらを使うのが良いですか?

4

7 に答える 7

7

正規表現は、テキストコンテンツに適用できるパターンマッチングの形式です。DOSワイルドカードを例にとってみましょう。および*ファイルを検索するときに使用できます。これは、RegExpの非常に限定されたサブセットの一種です。たとえば、「fn」で始まり、1〜4個のランダムな文字が続き、「ht.txt」で終わるすべてのファイルを検索する場合、通常のDOSワイルドカードでは検索できません。一方、RegExpは、それとはるかに複雑なパターンを処理できます。

正規表現は、要するに、効果的にする方法です

  • データを処理する
  • 文字列の検索と置換
  • 拡張文字列処理を提供します。

多くの場合、正規表現はそれ自体で文字列処理を提供できますが、組み込みの文字列メソッドやプロパティなどの他の機能は、複雑な関数またはループで使用する場合にのみ実行できます。

于 2009-11-07T21:30:29.583 に答える
4

複雑な文字列パターンを検索/置換/検証しようとしている場合。

于 2009-11-07T21:29:56.747 に答える
4

文字列の比較(preg_match)、サブ文字列の置換(sed、preg_replace)、文字の置換(sed、preg_replace)、ファイル内の文字列の検索(grep)、文字列の分割(preg_split)などに正規表現を使用します。

これは非常に柔軟で普及しているパターン表現言語であり、知っておくと非常に役立ちます。

しかし!彼らがポーカーについて言うように、それは学ぶのはとても簡単ですが、習得するのはとても難しいです。

正規表現に最適だと思った質問に出くわしました。見て、自分で決めてください。

于 2009-11-07T21:46:52.933 に答える
2

より良いパフォーマンスが必要な場合は、コードを書くために正規表現を避けなければならない場合があります。この例は、非常に大きなCSVファイルの解析です。

于 2009-11-07T21:31:29.147 に答える
2

正規表現は、テキストを解析するためのdsl(ドメイン固有言語)です。xpathがxmlをトラバースするためのDSLであるのと同じように。これは本質的に、汎用言語の中のミニ言語です。狭い目的に特化しているため、非常に少量のコードでかなりの成果を上げることができます。正規表現の非常に一般的な使用法の1つは、文字列が電子メールアドレス、電話番号、社会保障番号などであるかどうかを確認することです。

于 2009-11-07T21:43:43.123 に答える
2

正規表現が>>NOT<<適切である場合もあります(一般的に、常に例外があります)。

  • HTMLの解析
  • XMLの解析

上記の場合、ほとんどの場合、DOMパーサーの方が適しています。文法は複雑で、ネストされたタグなどのエッジケースが多すぎます。

また、将来のメンテナンスプログラマー(あなたかもしれません)を必ず検討してください。コメントおよび/または適切に選択されたメソッド/定数/変数名は、特に正規表現に堪能でない開発者にとって、違いの世界を生み出す可能性があります。

于 2009-11-08T03:03:56.657 に答える
0

正規表現は、フリーテキスト入力の形式を検証する場合に特に役立ちます。もちろん、データの正確さを検証することはできず、その形式だけを検証することができます。また、特定の種類の値(電話番号や郵便番号など)の地域による違いに注意する必要があります。ただし、有効な入力をテキストパターンとして定義できる場合は、正規表現を使用して検証をすばやく実行できます。

于 2009-11-09T15:16:05.393 に答える