2017-09-29 3 views
-1

文字列に特定の単語が含まれているかどうか確認したいのですか? How do I check if a string contains a specific word?によると、strpos()の機能を使用できます。私は正常に動作し、特定の単語filters(10)上記の機能を確認する必要がある場合はPHPでstrpos()のような関数の条件を使用するには?

サンプルコードは、私が

if(strpos($value, 'filters(10)') === false){ 
    //Do something 
} else { 
    //Do Another Thing 
} 

を書きました。 しかし、私は1の上のすべての数字をフィルターワードでチェックする必要があります。結果の上に得るために、私のコードを変更する方法

$value = 'bla bla bla bla' // Should return false 
$value = 'bla bla filters(1) bla bla' // Should return false 
$value = 'bla bla filters(5) bla bla' // Should return false 
$value = 'bla bla filters(10) bla bla' // Should return true 
$value = 'bla bla filters(15) bla bla' // Should return true 
$value = 'bla bla filters(20) bla bla' // Should return true 

答えて

1

ここでは、特定の番号を取得するためにRegexを使用できます。さらに条件を適用します。

正規表現:filters\((\d+)\)

このfilters(にマッチし、その後の数字をキャプチャし)

Try this code snippet here

preg_match("#filters\((\d+)\)#", $value, $matches); 
if(isset($matches[1]) && $matches[1]>10) 
{ 
    //do something on true 
} 
else 
{ 
    //do something on false 
} 
+1

ありがとうございました。これは完璧にうまくいった。でも私はpreg_matchについての記事をたくさん読んでいますが、私はあなた自身が書いたようなことはできません。preg_matchの書き方を簡単に説明できるリンクを提供できますか...ありがとう。 –

+1

@IamtheMostStupidPersonここで基本的な作業を確認できます。https://regex101.com/ –

0

あなたはfilters()の要素を解析し、10

とそれを比較することができます
if(($pos = strpos($value, 'filters(10)')) === false){ 
    if(intval(substr($value, $pos + strlen('filters('))) > 10) { 
    //Do something 
    } else {// do another thing} 
} else { 
    //Do Another Thing 
} 
関連する問題