PHP正则表达式不返回匹配项
作者:互联网
我有一个非常简单的正则表达式设置.
preg_match('/[0-9]*/', $item, $id);
$item的字符串值为“< li class =” page_item page-item-29 current_page_item“>< a href =” http://dcdc.siretesting.com/programs/child-care/“ title =”儿童保育“>儿童护理< / a< / li>”
当我print_r($id)时,我得到一个空数组Array([0] =>)
我使用http://regexpal.com/进行了测试,它的选择与我期望的一样.它突出显示数字29
我不知道为什么在PHP中无法正确匹配.
解决方法:
您可能会被模式所误导:
/[0-9]*/
*表示您要匹配零个或多个字符. preg_match会执行此操作,它会成功找到字符类[0-9]的零,并返回空字符串.
您可能的意思是:
/[0-9]+/
您想要匹配一个或多个的信号.
正则表达式不仅会为您提供所有匹配项,而且还会为您提供所有匹配项.参见preg_match_all:Demo.
标签:preg-match,php,regex 来源: https://codeday.me/bug/20191202/2085718.html