讲师中心 微信公众号
AI工具推荐 视频效率加速

提取 HTML 中非零美元金额的 文本内容

云浩大大_4146

云浩大大_4146

发布时间:2026-07-24 21:35:06

|

577人浏览过

|

来源于php中文网

原创

提取 HTML 中非零美元金额的 <span> 文本内容
文本内容 " />

本文介绍如何从 HTML 字符串中精准提取所有表示非零美元金额(如 0.01 Dollar、50.00 Dollar)的 <span> 文本,排除 0 Dollar 和 0.00 Dollar 等零值情况,提供基于 DOM 解析与纯正则两种专业方案。

本文介绍如何从 html 字符串中精准提取所有表示非零美元金额(如 `0.01 dollar`、`50.00 dollar`)的 `` 文本,排除 `0 dollar` 和 `0.00 dollar` 等零值情况,提供基于 dom 解析与纯正则两种专业方案。

在实际 Web 数据抓取或 HTML 内容清洗任务中,常需从不规范的 HTML 片段中提取特定语义数值(如货币金额)。本例目标明确:仅保留严格大于零的美元金额文本(如 0.01 Dollar、50.00 Dollar),而剔除 0 Dollar、0.00 Dollar 等零值表达。由于 HTML 结构可能不完整(如缺失闭合标签或含冗余空格),直接使用正则匹配存在风险;但结合上下文约束,仍可设计高鲁棒性方案。

✅ 推荐方案:DOM 解析 + XPath + PHP 函数扩展(最健壮)

利用 DOMDocument 解析 HTML 并借助 DOMXPath 注册 PHP 函数,可在结构化层级上安全执行逻辑判断:

$html = <<<HTML
<span>0 Dollar</span>
<span>0.01 Dollar</span>
<span>0.00 Dollar</span>
<span>50.00 Dollar</span>
HTML;

$dom = new DOMDocument();
libxml_use_internal_errors(true); // 忽略解析警告(如未闭合标签)
$dom->loadHTML($html);
libxml_clear_errors();

$xp = new DOMXPath($dom);
$xp->registerNamespace("php", "http://php.net/xpath");
$xp->registerPHPFunctions('preg_match');

// 正则:匹配以非零数字开头、后接可选小数和 "Dollar" 的完整字符串
$pattern = '/\A(?=[0.]*[1-9])\d+(?:\.\d+)?+\h+Dollar\z/';
$spans = $xp->query("//span[php:functionString('preg_match', '$pattern', text()) > 0]");

$result = [];
foreach ($spans as $span) {
    $result[] = trim($span->nodeValue);
}
print_r($result);
// 输出:Array ( [0] => 0.01 Dollar [1] => 50.00 Dollar )

优势:自动处理 HTML 嵌套、编码、空白字符;支持任意 <span> 位置;语义清晰、可维护性强。
⚠️ 注意:确保输入 HTML 可被 DOMDocument 正确加载(建议启用 libxml_use_internal_errors 容错)。

⚙️ 备选方案:纯正则匹配(适用于简单/非标准 HTML)

若 HTML 片段高度不规范(如 <span 标签缺失、仅含 >xxx Dollar</span 类原始文本),可采用锚定上下文的正则:

$data = <<<DATA
>0 Dollar</span
>0.01 Dollar</span
>0.00 Dollar</span 
>50.00 Dollar</span
DATA;

$regex = '/>\K(?=[0.]*[1-9])\d+(?:\.\d+)?+\h+Dollar(?=<)/';
preg_match_all($regex, $data, $matches);

print_r($matches[0]);
// 输出:Array ( [0] => 0.01 Dollar [1] => 50.00 Dollar )

? 正则详解

html-ppt-to-pdf
html-ppt-to-pdf

将使用 `

` 约定的 HTML 幻灯片转换为高保真、矢量文本 PDF(使用 Playwright + Chromium 原生 PDF 功能)。

下载

立即学习前端免费学习笔记(深入)”;

  • > 匹配字面量 >(常见于未闭合 <span> 的原始输出);
  • \K 重置匹配起点,避免捕获前导 >;
  • (?=[0.]*[1-9]) 正向先行断言:确保后续至少有一个非零数字(1-9),允许前导 0 或 .(如 0.01);
  • \d+(?:\.\d+)?+ 匹配整数或带小数的数字(?+ 表示占有量词,提升效率);
  • \h+Dollar 匹配一个或多个水平空白(空格/制表符)后接 Dollar;
  • (?=<) 断言右侧紧邻 <(即 </span 的起始)。

⚠️ 限制:该正则依赖 > 和 < 的固定位置,不适用于嵌套标签或复杂结构;对 Unicode 空格或换行需额外适配。

? 总结与最佳实践

  • 优先使用 DOM 方案:当 HTML 片段相对完整(即使有轻微错误)时,DOM 解析更可靠、可扩展,并天然支持 CSS 选择器增强定位(如 //span[contains(@class,'amount')])。
  • 谨慎使用正则方案:仅限已知格式极度简单、且无法引入 DOM 解析的轻量场景;务必通过真实数据集验证边界情况(如 000.00 Dollar、.5 Dollar、100 Dollar 等)。
  • 金额校验建议:若业务要求严格数值判断(而非字符串模式),应在提取后用 (float)$amount > 0 二次验证,避免正则遗漏边缘 case。

无论选择哪种方式,核心逻辑始终是:识别并排除所有语义为零的表达,精确捕获有效非零金额文本——这是结构化数据提取中“语义过滤”的典型范式。

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

4955

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2892

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2550

2023.07.31

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2579

2023.08.01

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

4559

2023.08.11

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2541

2023.08.11

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2329

2023.08.31

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2128

2023.09.01

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

0

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP基础入门课程
PHP基础入门课程

共33课时 | 3.3万人学习

PHP开发基础之字符串篇
PHP开发基础之字符串篇

共7课时 | 1.6万人学习

PHP字符串处理(玉女心经版)
PHP字符串处理(玉女心经版)

共11课时 | 2.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn