2016-12-15 19 views
0

我如何用正則表達式在某些部分檢查一些字符串正則表達式在一個字符串中間

我想加入這些條件。

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

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

某種這

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

我不知道如果我可以在字符串中使用正則表達式?

+1

是:

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

如果有之前或類似的搜索詞背後的附加內容這將不匹配。您可以。你也非常接近解決方案。現在就開始使用正則表達式函數來代替字符串比較。 –

回答

3

如果我正確地已瞭解,你正在尋找的東西是這樣的:

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

方括號在正則表達式來進行轉義。

注:因爲你正在尋找一個確切的數字

form[new_search_param][10][searchParam] 

:這不會匹配的字符串。要接受一個或多個數字寫:

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

其他建議:

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

您需要使用preg_match

搜索主題的匹配來pattern給出的正則表達式。

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

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

上述解決方案將工作。但是,您也可以使用'\ d'作爲'[0-9]'的簡寫。如果您希望數字大於9,請使用'\ d +'選擇一個或多個數字。 –

相關問題