首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取价格/成本仅一次

提取价格/成本仅一次
EN

Stack Overflow用户
提问于 2022-06-15 17:12:10
回答 1查看 94关注 0票数 0

我试图从以下任何一项中提取价格:

代码语言:javascript
复制
Item price: £93.00 Item number: 265722305071

Item number: 265722305071 Item price: $93.00 

£93.00£93.00
 
265722305071£93.00 foo

265722305071-93.00EURO

目标回应: 93.00

以下是我的一些尝试:

代码语言:javascript
复制
/^(\d*([.,](?=\d{3}))?\d+)+((?!\2)[.,]\d\d)?$/

/^£?[1-9]{1,3}(,\d{3})*(\.\d{2})?$/

/^£?(([1-9]{1,3}(,\d{3})*(\.\d{2})?)|(0\.[1-9]\d)|(0\.0[1-9]))$/

/^\xA3?\d{1,3}?([,]\d{3}|\d)*?([.]\d{1,2})?$/

/^\$?[0-9][0-9,]*[0-9]\.?[0-9]{0,2}$/i

(?=.*?\d)^\$?(([1-9]\d{0,2}(,\d{3})*)|\d+)?(\.\d{1,2})?$

/(?=.)^\$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|0)?(\.[0-9]{1,2})?$/

[0-9]+\.[0-9][0-9](?:[^0-9a-zA-Z\s\S\D]|$)

^\d+\.\d{2}$

我将使用单独的regex提取货币。

问题可能在于不知道使用的是什么regex引擎。我使用的工具是n8n,但我找不到它使用的regex味道。其他一切都在使用Javascript,这就是我开始的地方。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-15 17:23:57

您可以使用正则表达式。

代码语言:javascript
复制
(?:[$£])(\d+(?:\.\d+)?)

此正则表达式将捕获以$£符号开头的所有浮点数和整数。

Regex解释

  • (?:非捕获群
    • [$£]匹配$£符号

  • )闭非捕获群
  • (捕获组
    • \d+匹配一个或多个数字
    • (?:非捕获群
      • \.\d+将一个或多个数字与. (点)前缀匹配

代码语言:javascript
复制
- `)` Close non-capturing group
- `?` The previous group can exist or not
  • )紧群

编辑注意事项

正如您在下面提到的,字符串后面可以是EUR,甚至可以从这些组件开始。因此,您可以使用(?<=[$£€]|EUR\s?)\d+\.\d+|\d+\.\d+(?=[$£€]|\s?EUR)

代码语言:javascript
复制
function extractPrice(string) {
  let match = string.match(/(?<=[$£€]|EUR\s?)\d+\.\d+|\d+\.\d+(?=[$£€]|\s?EUR)/);
  return match ? match[0] : match;
}

console.log(extractPrice("Item price: £93.00 Item number: 265722305071"));
console.log(extractPrice("Item number: 265722305071 Item price: $93.00"));
console.log(extractPrice("£93.00£93.00"));
console.log(extractPrice("265722305071£93.00 foo"));
console.log(extractPrice("265722305071EUR93.00"));
console.log(extractPrice("265722305071EUR 93.00"));
console.log(extractPrice("265722305071 93.00 EUR"));
console.log(extractPrice("265722305071 93.00€"));

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72635348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档