我想这些数字匹配内(“”)PHP正则表达式/的preg_match
$linkvar ="<a onclick="javascript:open('597967');" class="links">more</a>"
preg_match("^[0-9]$",$linkvar,$result);
我想这些数字匹配内(“”)PHP正则表达式/的preg_match
$linkvar ="<a onclick="javascript:open('597967');" class="links">more</a>"
preg_match("^[0-9]$",$linkvar,$result);
只有字符串恰好是一个数字,你的正则表达式才会匹配。为了配合仅内的报价,使用数字:
preg_match("/'(\d+)'/", $linkvar, $result);
var_dump($result[1]);
你的正则表达式只有在整个串是由建立,因为^
和$
修饰符的一个号码相匹配。您当前的正则表达式在人类语言翻译成:
^
的意思是“这是字符串的开始”[0-9]
的意思是“匹配单个数字字符”$
的意思是“这是的结束字符串”将其更改为:
preg_match("[0-9]+",$linkvar,$result);
或替换地,匹配的号码的速记语法:
preg_match("\d+",$linkvar,$result);
的+
修饰符意味着“一个或多个”的数字必须被发现它是一个匹配。
此外,如果你想实际捕获字符串中的数字,你需要添加圆括号来通知preg_match
你实际上想要“保存”数字。
^和$匹配的字符串,这意味着你正在寻找一个只包含数字字符串的开始和结束。删除它们并添加一个加量词,只留下“[0-9] +”,它会在字符串中找到第一组数字。
preg_match("[0-9]+",$linkvar,$result);