试图从句子中拉出主题标签,只有当句子是一个单词时才有效。

时间:2012-11-30 19:54:05

标签: php regex

我正在尝试使用PHP从xml页面上的标题中获取主题标签,然后使用单词减去主题标签作为列表项的ID。到目前为止,只有标题只包含主题标签才能使用。如果句子中有更多内容则不会返回任何内容。我需要做些什么才能使其正常工作?

preg_match_all('#<title>\#(\w+)</title>#Us', $item, $temp );

1 个答案:

答案 0 :(得分:2)

这是一种方法:

preg_match_all('~<title>(?:[^<#]*\s)?#(\w+)[^<]*</title>~s', $item, $temp);

<#之外,它允许<title><之间的任何内容,前提是主题标签本身前面有空格;并且它将允许在#标签和</title>之间的preg_match_all之外的任何内容。

请注意,这只会匹配每个标题的一个#标签。如果您需要从单个标题中获取多个主题标签,我建议您先使用preg_match_all获取标题,然后对每个标题使用{{1}}获取其标签(s ),如果有的话。