- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 PHP 程序,在某些时候需要分析大量的 HTML+javascript 文本来解析信息。我要解析的所有内容都需要分为两部分。
在第一次解析中它需要找到:
<div id="myHome"
然后在那个标签之后开始捕获。然后停止捕获之前
<span id="nReaders"
并捕获这个标签后面的数字并停止。
在第二次解析中,使用之前解析中的第 1 个捕获(0 包含所有内容,2 包含编号),然后找到.
我已经有了执行此操作的代码并且它可以工作。有没有办法改进这一点,让机器更容易解析?
preg_match_all('%<div id="myHome"[^>]>(.*?)<span id="nReaders[^>]>([0-9]+)<"%msi', $data, $results, PREG_SET_ORDER);
foreach($results AS $result){
preg_match_all('%<div class="myplacement".*?[.]php[?]((?:next|before))=([0-9]+).*?<tbody.*?<td[^>]>.*?[0-9]+"%msi', $result[1], $mydata, PREG_SET_ORDER);
//takes care of the data and finish the program
注意:我需要这个作为免费软件程序,所以它必须尽可能通用,如果可能的话,不要使用 php 扩展
添加:我在这里省略了一些部分,因为我没想到会得到这样的答案。还需要解析文档中某个标记内的文本。它可能是第 6 个、第 7 个或第 8 个标签,但我知道它在某个标签之后。我检查过的解析器 (thx profitphp) 确实可以找到脚本标签。现在怎么办?有超过 1 个标签具有相同的类别。我想要他们全部。但我只想要一个类(class)列表.....我在哪里可以找到 DOM 解析器的说明和演示以及限制(如 http://simplehtmldom.sourceforge.net/ 中的那个)?我需要至少可以在大量免费服务器上运行的东西。另一件事。我如何解析这部分:“php?=([0-9]+)”使用那些 HTML 解析器?
最佳答案
如果您关心效率(实际上是准确性),don't attempt to parse HTML using regex .
您应该使用解析器,例如 PHP 的 DOM
关于php - 改进正则表达式语句以尽可能高效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4513038/
我知道在 KDB 中,如果您有一个列表,例如... l:`apples`oranges`pears` 您可以像下面这样进行 N 次随机选择: 9?l 但是如何尽可能均匀地选择列表中的每个项目? 最佳答
我真的厌倦了它。我有一个高级 Web 应用程序依赖于大量 Javascript 库(jQuery、jQueryUI、OpenLayers、highcharts、EJSChart 等等)。不用说,Int
我是一名优秀的程序员,十分优秀!