正则表达式多行命名组
Regex Multi Line Named Group
我有一个在线表格,客户可以填写并提交生成采购订单的表格。该数据也被发送到一个受监控的收件箱,我在业务中心使用 power automate 来解析数据,并将其输入我们的 ERP。
我如何解析该数据的示例:
电子邮件正文:
街道地址:95 N 200 E
城市:丰富
州/省:UT
邮编:84010-4848
我一直使用的正则表达式模式是:
Street Address: (?<streetaddress>.+|)
City: (?<city>.+|)
State \/ Province: (?<state>.+|)
Postal \/ Zip Code: (?<zip>.+)
有效。稍后在电子邮件正文中我有:
* S12(金额:730.00 USD,特殊数量:1546)
* IRONWORKS DRing(金额:1,599.00 USD,特殊数量:1)
* IRONWORKS LRing(金额:399.00 USD,特殊数量:1)
* IRONWORKS SRing(金额:1,199.00 USD,特殊数量:1)**
然而,我的正则表达式不起作用,我不明白为什么。
\* S12 \(Amount: 730.00 USD, Special Quantity: (?<S12Quantity>\d+|)
\* IRONWORKS DRing \(Amount: 1,599.00 USD, Special Quantity: (?<DQuantity>\d+|)
\* IRONWORKS LRing \(Amount: 399.00 USD, Special Quantity: (?<LQuantity>\d+|)
\* IRONWORKS SRing \(Amount: 1,199.00 USD, Special Quantity: (?<SQuantity>\d+|)
我只是想提取每件商品的数量,但稍后还需要找到一种方法来对收入金额做同样的事情。
在捕获组的末尾有一个左括号。
from:
(?<S12Quantity>\d+|)
to:
(?<S12Quantity>\d+)\)
您需要考虑捕获组关闭 )
和字符串末尾的文字 )
。
我已经用修复程序对此进行了测试,它对我来说适用于 Rubular:
\* S12 \(Amount: 730.00 USD, Special Quantity: (?<S12Quantity>\d+)\)
\* IRONWORKS DRing \(Amount: 1,599.00 USD, Special Quantity: (?<DQuantity>\d+)\)
\* IRONWORKS LRing \(Amount: 399.00 USD, Special Quantity: (?<LQuantity>\d+)\)
\* IRONWORKS SRing \(Amount: 1,199.00 USD, Special Quantity: (?<SQuantity>\d+)\)
每行以)
结尾,模式中缺少此字符模式。
此外,句点必须转义,因为 .
匹配任何字符。
此外,(\d+|)
是一种令人费解的说法 (\d*)
- 零个或多个数字。
使用
\* S12 \(Amount: 730\.00 USD, Special Quantity: (?<S12Quantity>\d+)\)
\* IRONWORKS DRing \(Amount: 1,599\.00 USD, Special Quantity: (?<DQuantity>\d*)\)
\* IRONWORKS LRing \(Amount: 399\.00 USD, Special Quantity: (?<LQuantity>\d*)\)
\* IRONWORKS SRing \(Amount: 1,199\.00 USD, Special Quantity: (?<SQuantity>\d*)
我有一个在线表格,客户可以填写并提交生成采购订单的表格。该数据也被发送到一个受监控的收件箱,我在业务中心使用 power automate 来解析数据,并将其输入我们的 ERP。
我如何解析该数据的示例:
电子邮件正文:
街道地址:95 N 200 E
城市:丰富
州/省:UT
邮编:84010-4848
我一直使用的正则表达式模式是:
Street Address: (?<streetaddress>.+|)
City: (?<city>.+|)
State \/ Province: (?<state>.+|)
Postal \/ Zip Code: (?<zip>.+)
有效。稍后在电子邮件正文中我有:
* S12(金额:730.00 USD,特殊数量:1546)
* IRONWORKS DRing(金额:1,599.00 USD,特殊数量:1)
* IRONWORKS LRing(金额:399.00 USD,特殊数量:1)
* IRONWORKS SRing(金额:1,199.00 USD,特殊数量:1)**
然而,我的正则表达式不起作用,我不明白为什么。
\* S12 \(Amount: 730.00 USD, Special Quantity: (?<S12Quantity>\d+|)
\* IRONWORKS DRing \(Amount: 1,599.00 USD, Special Quantity: (?<DQuantity>\d+|)
\* IRONWORKS LRing \(Amount: 399.00 USD, Special Quantity: (?<LQuantity>\d+|)
\* IRONWORKS SRing \(Amount: 1,199.00 USD, Special Quantity: (?<SQuantity>\d+|)
我只是想提取每件商品的数量,但稍后还需要找到一种方法来对收入金额做同样的事情。
在捕获组的末尾有一个左括号。
from:
(?<S12Quantity>\d+|)
to:
(?<S12Quantity>\d+)\)
您需要考虑捕获组关闭 )
和字符串末尾的文字 )
。
我已经用修复程序对此进行了测试,它对我来说适用于 Rubular:
\* S12 \(Amount: 730.00 USD, Special Quantity: (?<S12Quantity>\d+)\)
\* IRONWORKS DRing \(Amount: 1,599.00 USD, Special Quantity: (?<DQuantity>\d+)\)
\* IRONWORKS LRing \(Amount: 399.00 USD, Special Quantity: (?<LQuantity>\d+)\)
\* IRONWORKS SRing \(Amount: 1,199.00 USD, Special Quantity: (?<SQuantity>\d+)\)
每行以)
结尾,模式中缺少此字符模式。
此外,句点必须转义,因为 .
匹配任何字符。
此外,(\d+|)
是一种令人费解的说法 (\d*)
- 零个或多个数字。
使用
\* S12 \(Amount: 730\.00 USD, Special Quantity: (?<S12Quantity>\d+)\)
\* IRONWORKS DRing \(Amount: 1,599\.00 USD, Special Quantity: (?<DQuantity>\d*)\)
\* IRONWORKS LRing \(Amount: 399\.00 USD, Special Quantity: (?<LQuantity>\d*)\)
\* IRONWORKS SRing \(Amount: 1,199\.00 USD, Special Quantity: (?<SQuantity>\d*)