【发布时间】:2010-11-10 19:10:31
【问题描述】:
我正在尝试从一系列共享相同格式的 .html 中索引一些内容。
所以我得到了很多这样的行:<a href="meh">[18] blah blah blah < a...
这个想法是提取数字(18)和它旁边的文本(等等......)。此外,我知道每条符合条件的行都以"> 开头,以<a 或</p 结尾。问题源于需要将所有其他 htmHTML 标记保留为文本的一部分(<i>、<u> 等)。
那么我有这样的事情:
$docString = file_get_contents("http://whatever.com/some.htm");
$regex="/\">\ [(.*?)\ ] (<\/a>)(.) *?(<)/";
preg_match_all($regex,$docString,$match);
让我们看一下$regex。忽略它的空格,我只是把它们放在这里,否则一些字符会消失。我指定它将以"> 开头。然后我在[] 里面做数字。然后我挑出</a>。到目前为止一切顺利。
最后,我做了一个(.)*?(<)。这是转折点。通过留下最后一位,(<) 这样,当找到下划线或斜体标签时,文本将被中断。但是,如果我输入(<a|</p),则结果数组最终为空。我尝试将其更改为仅 (<a),但似乎 2 个字符搞砸了整个 ting。
我能做什么?我整天都在为此苦苦挣扎。
【问题讨论】:
标签: php html regex html-parsing