2017-10-10 5 views
2

長いリストの項目を含むpdfから変換したtxtファイルがあります。次のようにこれらの項目は、番号付け規則があります。2つのキャプチャされたグループ間のすべてのコンテンツをキャプチャする方法

[A-Z]{1,2}\d{1,2}\.\d{1,2}\.\d{1,2} 

この式は、間に何かを一致します

A1.1.1

ZZ99.99.99

これはうまく動作します。私が抱えている問題は、グループ1とグループ2の各アイテム番号(アイテムの説明)間のすべてをキャプチャしようとしていることです。

これらはリストまたはイテレートとして返される必要があります。キャプチャされたコンテンツをExcelスプレッドシートにエクスポートすることができます。

^([A-Z]{1,2}\d{1,2}\.\d{1,2}\.\d{1,2}\s)([\w\W]*?)(?:\n) 

は私が持っているもののサンプルと問題私が直面していますを見つけるために、このリンクをクリックしてください:

この

は、私が現在持っている正規表現である

Debuggex Demo

ができる誰もがすることですどのように多くの段落に関係なく、各番号間のすべてをキャプチャする方法を把握するのに役立ちますか?

いずれの入力もありがとうございます。ありがとうございます!

+0

私はPythonを知らないのですが、私には同様の[質問]がありました(https://stackoverflow.com/questions/46331543/use-regex-to-split-numbered-list-array-into-numbered-list -multiline)を最近使用しました。これは[regex101デモ](https://regex101.com/r/WpiKin/3)です。うまくいきたいです – danieltakeshi

答えて

0

あなたは非常に接近している:

import re 

s = """ 
A1.2.1 This is the first paragraph of the description that is being captured by the regex even if the description contains multiple lines of text.ZZ99.99.99 
""" 
final_data = re.findall("[A-Z]{1,2}\d{1,2}\.\d{1,2}\.\d{1,2}(.*?)[A-Z]{1,2}\d{1,2}\.\d{1,2}\.\d{1,2}", s) 

出力:あなたの最初の正規表現で定義されているあなたは、文字と数字の間に任意のテキストを一致させることができます(.*?)を使用することにより

[' This is the first paragraph of the description that is being captured by the regex even if the description contains multiple lines of text.'] 

+0

[Debuggex Demo](https://www.debuggex.com/r/W9NpLnVs1wYFpay8)はこのようにコードを検証しませんでした。 – danieltakeshi

関連する問題