2016-12-15 9 views
0

正規表現で一部の文字列をチェックする方法文字列の真ん中の正規表現

私はこれらの条件に参加したいです。私は、文字列に正規表現を使用できるかどうか、私は疑問に思う。この

if ($string == "form[new_search_param][" . ^[0-9] . "[searchParam]") {} 

のいくつかの並べ替えに

if ($string == "form[new_search_param][1][searchParam]") {} 

if ($string == "form[new_search_param][2][searchParam]") {} 

+1

はい:1件の以上の数字の書き込みを受け入れるには:

if(preg_match('/form\[new_search_param\]\[[0-9]+\]\[searchParam\]/', $string)) {} 

追加提案:などの検索語句の前または後ろの追加コンテンツがある場合

if(preg_match('/^form\[new_search_param\]\[\d+\]\[searchParam\]$/', $string)) {} 

にこれが一致しません。あなたはできる。あなたもソリューションに非常に近いです。文字列比較の代わりに正規表現関数を使うことから始めましょう。 –

答えて

3

私が正しくundestandした場合、あなたはこのような何かを探しています:

if(preg_match('/form\[new_search_param\]\[[0-9]\]\[searchParam\]/', $string)) {} 

角カッコは、正規表現でエスケープする必要があります。

注:正確な1つの番号を探しているので、

form[new_search_param][10][searchParam] 

:これは、文字列とは一致しません。

prefixedtext_form[new_search_param][10][searchParam]_suffixedtext 
2

あなたはpreg_match使用する必要があります:パターンで指定した正規表現によりsubject

検索を。

http://php.net/manual/en/function.preg-match.php

if(preg_match("/form\[new_search_param\]\[[0-9]\]\[searchParam\]/", $string)) { 
    // Your code 
} 
+1

上記の解決策が有効です。しかし、 '[0-9]'の省略形として '\ d'を使うこともできます。数字が9より大きい場合は、 '\ d +'を使って1つ以上の数字を選択します。 –