gpt4 book ai didi

regex - 使用正则表达式后使用 "x"或 "-"检测整数

转载 作者:搜寻专家 更新时间:2023-11-01 07:05:40 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式来检测收据上的项目列表中的数量。该软件使用 OCR,因此返回值可能会略有不同。为了帮助我缩小范围,假设数量总是在行的开头并且总是一个整数。我试图涵盖的用例是:

2 Burgers $4.00
2 x Burgers $4.00
2 X Burgers $4.00
2x Burgers $4.00
2X Burgers $4.00
2- Burgers $4.00
2 - Burgers $4.00

计划是让正则表达式为上面的每个示例返回 2。到目前为止,我的正则表达式是 \\d{1,2}(\\s[xX]|[xX]) 这会返回前三个示例,但尽管我已经尝试过了,但我不能似乎检测到其余部分,我还没有考虑添加 -,因为我一直在检测 Int 旁边的 x

任何帮助都会很棒,谢谢

最佳答案

To help ive narrowed it to assume that the quantity will always be at the start of the line and is always a whole number.

我建议使用类似的东西

let pattern = "(?m)^\\d+"

参见 regex demo .

该模式将匹配任何行开头的 1 个或多个数字:

  • (?m) - 一个 MULTILINE 修饰符,使 ^ 匹配行的开头而不是字符串的开头
  • ^ - 行首
  • \d+ - 1 个或多个 (+) 位数字。

enter image description here

如果您需要指定某些文本应跟在数字之后,请使用正向先行。例如。您可能需要 x/X/- 在 0+ 个空格之后,或者紧接着一个空格。然后,你需要使用

let pattern = "(?m)\\d+(?=\\s*[xX-]|\\s)"

此处,(?=\\s*[xX-]|\\s) 将使正则表达式仅匹配行开头紧跟的那些数字0+ 个空白字符,然后是 Xx-,或者紧跟一个空白字符。

参见 this regex demo .

关于regex - 使用正则表达式后使用 "x"或 "-"检测整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48167808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com