reg表达式会选择这些标签之间的所有文本?

时间:2012-11-30 07:24:26

标签: php regex

  

可能重复:
  RegEx match open tags except XHTML self-contained tags
  How to parse and process HTML with PHP?
  How can I convert ereg expressions to preg in PHP?

这是一个例子

echo "<div id='spaced' class='romaji'><span class='spaced orig word'>neko</span><span class='space'>";

请忽略“回声”,这是我可以获得html显示的唯一方法

我需要一个reg express,可以选择

之间的任何内容
echo "<span class='spaced orig word'>";

标签及其结束标签

echo "</span>";

我试过

$pattern = "span class='spaced orig word'>(.+?)</s";
preg_match_all ($pattern, $jp_page, $result_ro);
if ($result_ro[1])
$results[] = implode(' ', $result_ro[1]);
else
return null; // Failed to retrieve Hiragana, so abort 

以及其他一些事情,但是我无法做到正确,我大部分时间都没有得到任何结果,因为我真的不知道我在使用reg表达式做什么

目前正在使用此代码收到警告 警告:preg_match_all():分隔符不能是字母数字或反斜杠

2 个答案:

答案 0 :(得分:1)

THE PONY HE COMES!

相反,请尝试使用DOM解析器:

$dom = new DOMDocument();
$dom->loadHTML($jp_page);
$xpath = new DOMXPath($dom);
$spans = $xpath->query("//span[@class='spaced orig word']");
$results = "";
foreach($spans as $span) {
    $results = " ".$span->textContent;
}
$results = trim($results);
return $results;

答案 1 :(得分:-1)

没有分隔符 试试这个注册

<?php
$pattern = '@<span.*?>(.*?)</span>@';