PHP中的正则表达式不';行不通 $subject=“引用流 11”; $pattern=“/Citation flow[.]+([0-9]+)/i”; preg_match_all($pattern,$subject,$matches,preg_pattern_ORDER); 打印(匹配项);
我想捕捉粗体标记中的数字11。。但是我的正则表达式不起作用。。为什么? 更新: 我想出了这个。。但我不是100%,这是最好的解决方案:PHP中的正则表达式不';行不通 $subject=“引用流 11”; $pattern=“/Citation flow[.]+([0-9]+)/i”; preg_match_all($pattern,$subject,$matches,preg_pattern_ORDER); 打印(匹配项);,php,regex,Php,Regex,我想捕捉粗体标记中的数字11。。但是我的正则表达式不起作用。。为什么? 更新: 我想出了这个。。但我不是100%,这是最好的解决方案: $subject= "Citation flow <img src='/static/images/icons/help.png'> </span> </p>
$subject= "Citation flow <img src='/static/images/icons/help.png'>
</span>
</p>
<p style='font-size: 150%;'><b>11</b></p>";
$pattern="/Citation flow[.]+<b>([0-9]+)<\/b>/i";
preg_match_all($pattern, $subject,$matches,PREG_PATTERN_ORDER);
print_r($matches);
$pattern=“/Citation flow[\s\s]*([0-9]+)/i”;
好吧,它不能匹配,因为引用流
后面有一个空格,而不是任意数量的点。你可能是说
$pattern="/Citation flow[\s\S]*<b>([0-9]+)<\/b>/i";
(?si)引文流程+(\d+)
好吧,它不能匹配,因为引用流
后面有一个空格,而不是任意数量的点。你可能是说
$pattern="/Citation flow[\s\S]*<b>([0-9]+)<\/b>/i";
(?si)引文流程+(\d+)
您不想要吗
(?si)Citation flow.+<b>(\d+)</b>
$pattern=“/引文流[.]+([0-9]+)/si”;
您不想要吗
(?si)Citation flow.+<b>(\d+)</b>
$pattern=“/引文流[.]+([0-9]+)/si”;
当你说[.]+
时,你实际上是指+
<代码>[.]+匹配一串点;点在字符类中并不特殊。我强烈建议使用实际的HTML解析器,如simpledom-。您似乎试图用正则表达式解析HTML。你可能想读我知道的关于简单html解析的书。。但是我要刮的文档没有很多独特的标签,当你说[.]+
时,实际上是指+
<代码>[.]+匹配一串点;点在字符类中并不特殊。我强烈建议使用实际的HTML解析器,如simpledom-。您似乎试图用正则表达式解析HTML。你可能想读我知道的关于简单html解析的书。。但是,我正在尝试刮取的文档没有很多独特的标记\d+和我所做的区别不要忘记使用/s
或(?)s
。Dmitry:\d
是[0-9]
的简写。您可以在preg\code>中,将/s
和I
选项放在尾部分隔符之后。这只是一种内联指定正则表达式选项的方法。\d+和我所做的有什么区别?别忘了使用/s
或(?)s
。Dmitry:\d
是[0-9]
的缩写。你可以将/s
和i
选项放在preg\code>中尾部分隔符之后。这只是一种内联指定正则表达式选项的方法。不太可能,因为这也会尝试匹配文字点。不太可能,因为这也会尝试匹配文字点。