我正在尝试使用 PHP 从 xml 页面上的标题中获取主题标签,然后使用单词减去主题标签作为列表项的 id。到目前为止,只有当标题仅包含主题标签时,我所得到的才有效。如果句子有更多内容,它将不会返回任何内容。我需要做什么才能使其正常工作?
preg_match_all('#<title>\#(\w+)</title>#Us', $item, $temp );
最佳答案
这是一种方法:
preg_match_all('~<title>(?:[^<#]*\s)?#(\w+)[^<]*</title>~s', $item, $temp);
它允许除 <
之外的任何内容或#
<title>
之间和主题标签,前提是主题标签本身前面有空格;它允许除 <
之外的任何内容主题标签和 </title>
之间.
请注意,这只会匹配每个标题的一个主题标签。如果您需要能够从单个标题获取多个主题标签,我建议您首先使用 preg_match_all
获取标题,然后对于每个标题,使用 preg_match_all
获取其主题标签(如果有)。
关于php - 尝试从句子中提取主题标签,仅当句子是一个单词时才有效。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13652170/