gpt4 book ai didi

c# - 使用正则表达式在一个子字符串中查找多个项目

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:33 24 4
gpt4 key购买 nike

很难为我的问题想出一个合适的标题。首先是一些背景信息,以备不时之需。

*我有一张账单,我试图通过使用正则表达式来读取信息。我将我需要的信息保存到 4 个不同的表中:帐户、实用程序、位置和税收。

逻辑是每张账单只有一个账号(账户级别)。每个帐号可以属于多个公用事业(公用事业级别)。每个实用程序可以有多个位置(假设这个问题只有一个位置)。每个地点可以有不止一种税。*

所以对于找到的账单HERE我们可以看到 4 种税(城市销售税 2.97、县销售税 1.46、州销售税 3.44 和 PPRTA 税 1.10)都属于“电力”公用事业。我们还看到 4 个公用事业(电力、天然气、水和废水)属于 1 个帐号,每个都有自己的税。

以前我一直在做一些像这样简单的事情来多次捕获一个捕获组中的所有税收:Tax:.\$(.)

我现在想要完成的是构建一个正则表达式,它只查找给定公用事业的所有税收。同样,它必须在一个具有多个匹配项的捕获组中。

这是我目前拥有的电力税示例:(?:Electric Commercial Service(?:.\n)?. ?税:.*\$(.)(?:.\n)?.?此服务的总费用)*

如您所见,这只会收取第一项税款。我想不出一种方法让它在“电力商业服务”和与电力服务有关的“这项服务的总费用”之间征收所有税款。

谢谢!

最佳答案

在大多数语言中,您无法在单个正则表达式中完成此操作。捕获组只会在匹配数组中产生一个元素,即使该组是通配符也是如此。

您需要分两步完成。首先使用正则表达式(或其他方式)提取单个实用程序的账单部分。然后在该字符串中,您可以使用正则表达式

Tax:.* \$([\d.]+)$

找到所有的税。在 PHP 中,您将使用 preg_match_all 来查找所有匹配项;其他语言应该有类似的东西(可能涉及正则表达式的 g 修饰符)。

关于c# - 使用正则表达式在一个子字符串中查找多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15231838/

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