man*_*nny 0 php regex preg-match
这是我想要匹配的模式:
<div class="class">
<a href="http://www.example.com/something"> I want to be able to capture this text</a>
<span class="ptBrand">
Run Code Online (Sandbox Code Playgroud)
这就是我在做的事情:
$pattern='{<div class="productTitle">[\n]<((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)>([^\n]*)</a>[\n]<span class="ptBrand">}';
preg_match($pattern, $data, $matches,PREG_OFFSET_CAPTURE);
print_r($matches);
Run Code Online (Sandbox Code Playgroud)
它打印:
数组()
作为一般规则,正则表达式是解析HTML的一种非常糟糕的方法.它们不可靠,往往最终变得非常复杂.更强大的解决方案是使用HTML解析器.请参阅使用PHP和DOM解析HTML.
至于你的表达,我没有<div class="productTitle"在源头看到任何地方所以我从那里开始.同样地,你试图解析一个URL,但没有提到锚标记(直接或通过足够的通配符),所以它也会在那里失败.基本上,表达式看起来与您尝试解析的HTML不同.
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |