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

如何保留方括号及内部内容并移除其他字符?正则表达式求助

解决方法

你需要从原字符串中提取出仅包含[10.00 FTE]的<strong>标签,以下是可行的正则方案:

一步到位替换(推荐)

直接用正则匹配所有冗余内容,替换为目标结果:

rowData.Q1.replace(/^.*<strong>.*?(\[.*?\])<\/strong>.*$/s, '<strong>$1</strong>')

正则说明:

  • ^.*:匹配字符串开头到<strong>前的所有内容
  • <strong>.*?:匹配<strong>标签和其后到方括号前的多余内容(非贪婪模式,避免过度匹配)
  • (\[.*?\]):捕获方括号及其内部的核心内容(这是我们要保留的部分)
  • <\/strong>.*$:匹配</strong>标签到字符串结尾的所有内容
  • s修饰符:让.能匹配换行符,确保字符串有换行时也能正常处理

如果你的运行环境不支持s修饰符(比如旧版JavaScript),可以用[\s\S]代替.匹配所有字符:

rowData.Q1.replace(/^[\s\S]*<strong>[\s\S]*?(\[.*?\])<\/strong>[\s\S]*$/, '<strong>$1</strong>')

分两步处理(更直观)

如果觉得一步正则太复杂,可以拆成两步:

  1. 先清理<strong>标签内的多余内容(去掉$183,361 ):
const cleanedInner = rowData.Q1.replace(/(<strong>).*?(\[.*?\])(<\/strong>)/, '$1$2$3')
  1. 再移除<strong>标签外的所有内容:
const finalResult = cleanedInner.replace(/^.*?(<strong>.*?<\/strong>).*$/, '$1')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:25:28