如果数据被标签分隔,就像我可以看到DOM /解析器,但我从一个文本块中选择信息。我已经知道我需要的是正则表达式。这个问题是为什么我的正则表达式不起作用。除了正则表达式之外,没有人发现更好的选择。
只对这一点感兴趣:
<h2 class="titre filet-bottom3">Coordinates</h2>
<p>
585, avenue St-Charles<br />
Vaudreuil-Dorion, Québec<br />
J7V8P9
</p>
<p>
Phone number : 450 455-9347 <br />
Fax : 450 455-5852
</p>
任务是提取电话号码,地址,城市等信息。我决定使用正则表达式,因为它适用于此HTML中的其他位。但是对于这个文本块,它没有采取。
所以这个正则表达式我......在regex101.com上发布了
/Coordinates<\/h2>\s+<p>\s+(.+), (\D+)<br \/>\s+(\D+),\s+(\D+)<br \/>\s+(\D\d\D\d\D\d)\s+<\/p>\s+<p>\s+P.+;:.(\d{3} \d{3}-\d{4}).+\s+F.+;:(.+|.+(\d{3} \d{3}-\d{4}))/gi
它适用于regex101.com,因为在捕获组中提取了我想要的信息。
但是当我使用这个来加入PHP时:
$regex = '/Coordinates<\/h2>\s+<p>\s+(.+), (\D+)<br \/>\s+(\D+),\s+(\D+)<br \/>\s+(\D\d\D\d\D\d)\s+<\/p>\s+<p>\s+P.+;:.(\d{3} \d{3}-\d{4}).+\s+F.+;:(.+|.+(\d{3} \d{3}-\d{4}))/gi';
preg_match($regex, $data, $match);
我得不到比赛。我能够使用此方法提取其他信息,例如地图坐标。有一个更好的方法吗?如果不是为什么它不起作用。
谢谢!