我正在尝试使用PHP从xml页面上的标题中获取主题标签,然后使用单词减去主题标签作为列表项的ID。到目前为止,只有标题只包含主题标签才能使用。如果句子中有更多内容则不会返回任何内容。我需要做些什么才能使其正常工作?
preg_match_all('#<title>\#(\w+)</title>#Us', $item, $temp );
答案 0 :(得分:2)
这是一种方法:
preg_match_all('~<title>(?:[^<#]*\s)?#(\w+)[^<]*</title>~s', $item, $temp);
除<
和#
之外,它允许<title>
和<
之间的任何内容,前提是主题标签本身前面有空格;并且它将允许在#标签和</title>
之间的preg_match_all
之外的任何内容。
请注意,这只会匹配每个标题的一个#标签。如果您需要从单个标题中获取多个主题标签,我建议您先使用preg_match_all
获取标题,然后对每个标题使用{{1}}获取其标签(s ),如果有的话。