在Spotfire中使用Regex从字符串提取美元金额的方法求助
在Spotfire中用RXExtract提取字符串中的美元金额
可以通过Spotfire的RXExtract函数结合正则表达式实现需求,以下是具体方案:
核心正则表达式
针对你提供的工单描述格式,适用的正则表达式为:
\$([\d,]+)
表达式解释:
\$:匹配美元符号($在正则中是特殊字符,必须用反斜杠转义)([\d,]+):捕获美元符号后由数字和千分位逗号组成的序列,这就是我们需要提取的金额主体
如果你的数据中存在带小数的美元金额(如
$1,234.56),可使用更通用的正则表达式:\$([\d,]+(?:\.\d+)?)
Spotfire计算列表达式
在Spotfire中创建计算列时,使用以下表达式(如果需要纯数字结果,需额外去除千分位逗号):
Replace(RXExtract([工单描述], "\$([\d,]+)", 1), ",", "")
函数说明:
RXExtract([工单描述], "\$([\d,]+)", 1):从[工单描述]列中匹配正则表达式,提取第1个捕获组(即括号内的金额内容)Replace(..., ",", ""):移除金额中的千分位逗号,得到纯数字格式的结果(如果需要保留带逗号的金额或美元符号,可省略此步骤)
示例验证
将上述表达式应用到你的示例数据:
- 输入:
"51 hrs @ $1,000 per/HR 5.5"→ 输出:1000 - 输入:
"5.5 EXC cost $200/DAY"→ 输出:200 - 输入:
"Open Top - $275/DAY"→ 输出:275 - 输入:
"Trash Rental ($100/DAY)"→ 输出:100
内容的提问来源于stack exchange,提问作者AnnonymousAsker
相关产品推荐
相关产品推荐

