2012-01-26 8 views
-2

プログラマーとしては、毎日データをフィルタリング、検索、検証する必要があります。これらの問題のすべてに対して、私は正規表現かプレーンなPHPを使うかどうかを決める必要があります。正規表現を使用する、または避ける?

でもここのような単純な例では、私はそれを使用するのか明らかではないと思う:正規表現を使用しての How to write a regex expression that replace anchors and links value

主な利点は、それは短いですが、それゆえ、あなたが読みやすさの多くを失うことです。

ベストプラクティスの方法はありますか?

+0

[正規表現はPHPの一部です](http://php.net/manual/en/book.pcre.php)。 –

+1

完全にユースケースに依存します。形式の検証は、HTMLのようなマークアップの構文解析があまり良くないため、正規表現が役に立ちます。解析言語も良くありません。 –

+0

正規表現が最適解の一部であるかどうかを知るにはあまりにも曖昧です。 – Quentin

答えて

2

入力がregular grammarで表現することができますか?そうであれば、それを処理するパーサを構築するために必要な正規表現を使用してください。

1

正規表現は、テキストのパターンを一致させるためのツールです。テキスト内のパターンと一致させる場合に使用します。

+1

これは正確ではありません。 HTMLマークアップは「テキストのパターン」と呼ばれることがありますが、正規表現では一致できません。正規表現は* regular *の言語にマッチするためだけです。 – Tomalak

0

実際の使用状況によって異なります。

たとえば、あなたは数がフォーマットddd.dddd--dであり、正規表現が最善であることを確認する必要があり、場合:

preg_match('/^\d{3}\.\d{4}--\d$/', $num); 

しかし、あなたは別の内部文字列を検索する必要がある場合は、文字列関数を使用しますあなたは文字列関数を使用して、その位置に基づいて、サブではなく、変数のコンテキストを取得する必要がある場合は

if (strpos("findme in here", "findme") !== FALSE) { 

} 

:代わりに正規表現の

$string = "This is the original"; 
$get = "is"; 
echo substr($string, strpos($string, $get) + strlen($get), strlen($string)); 
// the original 
0

まず、プレーンなPHP(通常はstrを前に付けた関数)を使用してみてください。簡単に解決策を見つけることができない場合は、正規表現を使用します。

関連する問題