PHP模式匹配以标识具有数字的特定字符串

时间:2014-07-30 11:43:54

标签: php regex

我正在"合并"我的文字中的字段,即:

:: sub_menu :: 33 ::

我希望能够找到所有这种模式:

:: sub_menu ::(任何数字)::

然后我会继续提取数字并替换它(我不需要帮助,谢谢)。

我之前使用过preg_match_all,但是当我想在匹配中使用特定字符串时,我不确定如何使用它?任何有用的帮助。

3 个答案:

答案 0 :(得分:1)

  

我希望能够找到所有这种模式:::sub_menu::(any number)::

您可以使用此正则表达式:

/::sub_menu::\(\d+\)::/

要在preg_match_all中使用:

if ( preg_match_all('/::sub_menu::\((\d+)\)::/', $input, $match) )
    print_r($match[0]);

答案 1 :(得分:0)

您可以使用:

preg_match("/::sub_menu::\((\d+)\)::/", $input_line, $output_array);

输出 :: sub_menu ::(33):: 的$ output_array将包含:

Array
(
    [0] => ::sub_menu::(33)::
    [1] => 33
)

答案 2 :(得分:0)

你可以尝试这个:

$ input =':: sub_menu :: 33 ::';

/* if you have one or more numbers,  use (+) quantifiers*/ 
if ( preg_match('/::sub_menu::[0-9]+::/', $input, $match) )


/* if you want to put min/max quantifiers min by 2 and max by 10*/
if ( preg_match('/::sub_menu::[0-9]{2,10}::/', $input, $match) ){

    print_r($match);

}