编程语言
首页 > 编程语言> > PHP正则表达式不返回匹配项

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