Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP模式匹配,以识别特定字符串中的数字_Php_Regex - Fatal编程技术网

PHP模式匹配,以识别特定字符串中的数字

PHP模式匹配,以识别特定字符串中的数字,php,regex,Php,Regex,我在文本中添加“合并”字段,即: ::子菜单::33:: 我希望能够找到此模式的所有实例: ::子菜单::(任意数字):: 然后我将继续提取数字并替换它(我不需要这方面的帮助,谢谢) 我以前都使用过preg_match_,但是当我想使用特定字符串作为匹配的一部分时,我不确定如何使用它?非常感谢任何帮助 我希望能够找到此模式的所有匹配项:::子菜单::(任意编号): 您可以使用此正则表达式: /::sub_menu::\(\d+\)::/ 要在preg\u match\u all中使用它,请使用

我在文本中添加“合并”字段,即:

::子菜单::33::

我希望能够找到此模式的所有实例:

::子菜单::(任意数字)::

然后我将继续提取数字并替换它(我不需要这方面的帮助,谢谢)

我以前都使用过preg_match_,但是当我想使用特定字符串作为匹配的一部分时,我不确定如何使用它?非常感谢任何帮助

我希望能够找到此模式的所有匹配项:
::子菜单::(任意编号):

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

/::sub_menu::\(\d+\)::/
要在
preg\u match\u all
中使用它,请使用:

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

preg_match("/::sub_menu::\((\d+)\)::/", $input_line, $output_array);
::sub_menu::(33)::输入的$output_数组将包含:

Array
(
    [0] => ::sub_menu::(33)::
    [1] => 33
)
你可以试试这个:

$input='::子菜单::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);

}

我想他问的是如何使用preg_match_,而不是如何构造正则表达式。谢谢!这起作用了:preg_match_all(“/::子菜单::(\d+):/”,$str_content,$matches);简短而甜蜜,+1:)谢谢你的评论,我实际上并不是想()成为模式的一部分,所以第一个答案确实有效。