正则表达式在字符串中间

时间:2016-12-15 14:51:01

标签: php regex string

我如何在某些部分用正则表达式检查一些字符串

我想加入这些条件。

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]") {}

我想知道我是否可以在字符串中使用正则表达式?

2 个答案:

答案 0 :(得分: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 )) {}

其他建议:

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

如果在搜索词组之前或之后有其他内容,则不匹配:

prefixedtext_form[new_search_param][10][searchParam]_suffixedtext

答案 1 :(得分:2)

您需要使用preg_match

  

搜索主题与模式中给出的正则表达式匹配。

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

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