私の質問にふさわしいタイトルを思いつくのは大変でした。まず、必要な場合に備えて、背景情報を少し紹介します。
*正規表現を使用して情報を読み取ろうとしている請求書があります。必要な情報を、アカウント、ユーティリティ、場所、税金の4つの異なるテーブルに保存します。
各請求書には1つのアカウント番号(アカウントレベル)しかないという論理です。各アカウント番号は、複数のユーティリティ(ユーティリティレベル)に関連する場合があります。各ユーティリティは複数の場所を持つことができます(この質問では1つの場所のみを想定しています)。また、各場所に複数の税金を課すことができます。*
したがって、ここにある請求書については、4つの税金(2.97の市の売上税、1.46の郡の売上税、3.44の州の売上税、および1.10のPPRTA税)がすべて「電気」ユーティリティに属していることがわかります。 また、4つのユーティリティ(電気、ガス、水道、廃水)が1つのアカウント番号に属し、それぞれに独自の税金が設定されていることもわかります。
以前、私はこのような単純なことを行って、1つのキャプチャグループ内のすべての税金を複数回キャプチャしていました。Tax:。 \ $(。)
私が今達成しようとしているのは、特定のユーティリティに対してのみすべての税金を検索する正規表現を作成することです。繰り返しになりますが、複数の一致がある1つのキャプチャグループに含まれている必要があります。
これが私がこれまでに電気税について持っているものの例です:(?: Electric Commercial Service(?:。 \ n)?。?Tax:。* \ $(。)(?:。 \ n)?。?このサービスの合計料金)*
ご覧のとおり、これは最初の税金のみを徴収します。「電気商用サービス」と「電気サービスに関連する「このサービスの合計料金」」という言葉の間のすべての税金を徴収する方法がわかりません。
ありがとう!