You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则表达式从指定HTML中提取价格数值75.00?

提取HTML中价格数值的正则方案

嘿,我来帮你搞定这个正则问题!你写的雏形<td>$*/<span class='small font-weight-bold text-danger'>是有问题的,主要有两个核心问题:

  • $是正则里的特殊字符(代表行尾锚点),直接写的话没法匹配HTML里的美元符号,必须转义成\$
  • *是量词(匹配前面元素0次或多次),但你这里$后面直接跟*,逻辑上没法精准定位到价格数值

针对你给出的HTML代码:

$75.00/Piece *some more text here*

我给你两种靠谱的正则方案:

方案1:精准匹配固定结构

/<td>\$(\d+\.\d+)\/<span class='small font-weight-bold text-danger'>/

逻辑解释:

  • <td>\$:匹配<td>标签后紧跟的美元符号(\$转义后才能匹配真实的$字符)
  • (\d+\.\d+):捕获组,专门提取「整数部分+小数点+小数部分」的数值,也就是你要的75.00
  • \/<span class='small font-weight-bold text-danger'>:匹配价格后的/和指定的span起始标签(/也要转义成\/,避免和正则的分隔符冲突)

方案2:兼容微小格式变化(比如空格)

如果HTML里可能存在多余空格(比如<td> $75.00 / <span...>),可以用带空白匹配的版本:

/<td>\s*\$(\d+\.\d+)\s*\/\s*<span class='small font-weight-bold text-danger'>/

逻辑解释:

  • \s*:匹配0个或多个空白字符(空格、制表符等),兼容HTML里可能出现的格式差异

额外提醒

虽然正则能解决这个问题,但如果是长期处理HTML内容,更推荐用专业的HTML解析库(比如Python的BeautifulSoup、Java的Jsoup),因为HTML结构一旦有微小调整(比如标签属性顺序变化),正则很容易失效,而解析库能更稳定地提取内容。

内容的提问来源于stack exchange,提问作者javafrapp90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:52:24