私は、EDIFACTUNコードリストからさまざまな情報を抽出する正規表現を書いています。何万ものコードがあるので、それらをすべて入力したくないので、正規表現を使用してテキストファイルを解析し、必要なビットを抽出することにしました。テキストファイルは、必要なビットを簡単に識別できるように構成されています。
Regex Heroを使用して次の正規表現を作成しましたが、 codeCommentグループの2つの改行まですべてを一致させることができません。文字クラス[^\n \ n]を使用してみましたが、それでも二重改行とは一致しません。
注: RegexHeroで[マルチライン]オプションを選択しました。
(?<element>\d+)\s\s(?<elementName>.*)\[[B|C|I]\]\s+Desc: (?<desc>[^\n]*\s*[^\n]*)
^\s*Repr: (?<type>a(?:n)?)..(?<length>\d+)
^\s*(?<code>\d+)\s*(?<codeName>[^\n]*)
^\s{14}(?<codeComment>[^\n]*)
これは、私が照合に使用しているテキストの例です。
-------------------------------------------------- --------------------
1073ドキュメント行アクションコード[B]
説明:ドキュメントの行に関連付けられたアクションを示すコード 。担当者:an..3
1ドキュメント/トランザクション
に含まれるドキュメント行は
ドキュメント/トランザクションに含まれます。
これもキャプチャする必要があります。2ドキュメント/トランザクションから
除外ドキュメント行は
ドキュメント/トランザクションから除外されます。
私が欲しいのは、codeCommentに以下を含めることです。
The document line is included in the
document/transaction.
should capture this as well.
しかし、それは最初の行を抽出しているだけです:
The document line is included in the