php - 尝试从句子中提取主题标签,仅当句子是一个单词时才有效。

标签 php regex

我正在尝试使用 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/

相关文章:

php - 试图设置 session 变量

regex - 与正则表达式匹配时忽略特定行

java - 为什么这个正则表达式不起作用?

javascript - 如何根据字符串的长度用 "*"(astrik) 字母替换字符串

regex - 无论如何,我是否可以避免将以下规则中的 9 位数字与我拥有的正则表达式相匹配?

php - 可能意外发生的引用和数组

php - 如何显示自定义错误,而不是显示简单的html dom.php错误

php - 转换为数组 VS is_array()

php - 如何将 doesObjectExist() 请求批量发送到 Amazon S3?

java - 我的正则表达式正确吗?