当前位置: 首页 > 知识库问答 >
问题:

用php regex从包含html标记的文本中获取所有单词

杨起运
2023-03-14

我目前正在尝试用PHP从包含html标记的文本中获取所有单词

我的regex有一个问题,如果一个单词以重音结束(例如“é”),我的单词就不会被捕获。

$re = '/([^\r\n\t\f>< /]+(?!>))\b/';
$str = 'Non ! Non ! Je ne veux pas d\'un éléphant dans un boa.<br>
<p> Un boa c\'est très dangereux, et un éléphant élévé c\'est très encombrant. Chez moi c\'est tout petit. J\'ai besoin d\'un mouton. Dessine-moi un mouton.
</p>
-Laisse-moi dire mouton... For saints have hands that pilgrims\' hands do touch
preg_match_all($re, $str, $matches);

// but word elevé is not completely match
print_r($matches);

共有1个答案

岑熙云
2023-03-14

如果要使用regex,可以使用:

<[^>]+>(*SKIP)(*FAIL)|([A-zÀ-ÿ]+)

工作演示

请注意,regex字符类中的字符范围使用ASCII范围,我用了最简单的方法,但请记住,该范围包含您可能不需要的符号。如果要支持特定字符,请检查ascii表并使用所需的范围

<[^>]+>(*SKIP)(*FAIL)|([A-zÀ-ÿ']+)
<[^>]+>(*SKIP)(*FAIL)|([\w']+)
<[^>]+>(*SKIP)(*FAIL)|([\w'-]+)
<[^>]+>(*SKIP)(*FAIL)|([\w']+(?:[\w'-]*))

工作演示

 类似资料:
  • 我是正则表达式的新手,我不能做我需要的。 假设我们有这样一段文字: 我需要得到所有包含“los gatos”文本的标签。 它应该匹配4个巧合: 如何用正则表达式解决它? 编辑: 我终于找到了我需要的!我分享给任何可能需要它的人:

  • 问题内容: 当我使用jsoup提取数据时遇到一个职位。数据如下: 我想要这样的数据: 我怎样才能做到这一点?谁能帮我? 问题答案: 您可以将html解析为,选择-Element并获取其文本。 例: 输出:

  • 我试图获取提供的html(跨度)之间的数据(在本例中为31) 以下是原始代码(来自chrome中的inspect elements) 我有一个包含页面源代码的富文本框,下面是相同的代码,但是在富文本框的第51行: 我将如何做到这一点?我已经尝试了几种方法,但似乎都不适合我。 我试图从这一页检索点值:http://www.subxcess.com/sub4sub.php根据谁潜艇你的数量变化。

  • 问题内容: 可以说我有一个Java程序包,其中包含所有继承自的类,我能以某种方式获得所有这些类吗?我正在锁定以下方面的东西: 这样有可能吗? 问题答案: 这是一个基本示例,假定类未打包JAR:

  • 对于以下超文本标记语言: 我们可以将第一行与这个xpath匹配-- 我们无法将第2行与此xpath匹配-- BR标记正在运行。Selenium IDE的“Select”功能可以获取DIV标记xpath,但不能深入到它所包含的文本中。 有什么建议吗?

  • 问题内容: 我有这个HTML代码: 但它应该变成(对于所有可能的html标签): 问题答案: 改编自我对类似问题的回答 RegExp细分: 添加一些引号,并使用替换文本,它应该删除标记名之后的所有文本,直到标记结尾或just 为止。 请注意, 这不一定适用于 所有 输入,因为Anti-HTML + RegExp会告诉您。有一些后备功能,最明显的是会失败,还有其他一些坏的问题…我建议将Zend_Fi