0

可能重复:
正则表达式匹配打开的标签,XHTML 自包含标签除外
如何使用 PHP 解析和处理 HTML?
如何在 PHP 中将 ereg 表达式转换为 preg?

这是一个例子

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():分隔符不能是字母数字或反斜杠

4

2 回答 2

1

他来的小马!

相反,请尝试使用 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;
于 2012-11-30T07:35:30.123 回答
-2

没有分隔符试试这个 reg

<?php
$pattern = '@<span.*?>(.*?)</span>@';
于 2012-11-30T07:29:28.973 回答