我正在尝试制作一个帮助我从网站上获取新书的脚本。
我正在使用preg_match_all。我有7个信息可以获得:标题,作者,编辑......
创建我的preg匹配掩码时遇到了一些问题。例如,我需要这里的产品代码。每页都有3到10个代码产品。 :
<li><label>Réf : </label>21608</li>
起初我正在尝试这个:
$mask ="/Réf :(.*)<\/li>/Us";
这是工作,但我只想要数字。我正在网上搜索正则表达式指南,但我不明白如何使用语法来实现我的目标,因为这个代码产品不是像这样的两个标签:<open>...</open>
。此代码产品有4或5个数字。
感谢您的帮助!
答案 0 :(得分:1)
尝试使用正则表达式:
/Réf :\D*(\d+)<\/li>/
\D
:非数字\d
:数字答案 1 :(得分:0)
试试这个......
/>\s*(\d{3,10})\s*</
答案 2 :(得分:0)
让我们一步一步地尝试匹配这些数字:
Réf
,让我们/réf/i
并使用i
修饰符来匹配不区分大小写。space : space
,让我们将其设为动态,并将其与\s*
匹配,后者将匹配空白/réf\s*:\s*/i
\D*
来匹配除数字以外的所有内容:/réf\s*:\s*\D*/i
\d{4,5}
来匹配数字4或5次:/réf\s*:\s*\D*\d{4,5}/i
/réf\s*:\s*\D*(\d{4,5})/i
PHP代码
$string = '<li><label>Réf : </label>21608</li>';
preg_match_all('/réf\s*:\s*\D*(\d{4,5})/i', $string, $m);
print_r($m[1]);
<强>输出强>
Array
(
[0] => 21608
)