0

2 行にまたがるテキストを取得したいと思います。

例えば ​​:

PO Number Dept.number
4000813852 7

PO 番号 4000813852を取得したい のですが、表ベースのデータのようですが、ドキュメント全体のコンテキストでは通常のテキストのように見えます。

私はre.MULTILINEのよう に使用しましたr'PO Number.*\n[0-9]+'

この場合は機能しますが、PO 番号が途中にある可能性があるため、最適なソリューションではありません。

Invoice Number PO Number Dept.number
123456666     4000813852  7
4

2 に答える 2

1

単一の正規表現の場合:

data="""PO Number Dept.number
    4000813852 7
    Invoice Number PO Number Dept.number
    123456666     4000813852  7
    """

re.findall(r"(PO Number)\s*Dept.number\s*(?:(?:\d+)\s+(\d+)|(\d+))\s+\d",data)
Out: 
[('PO Number', '', '4000813852'), ('PO Number', '4000813852', '')]

\s は改行にも一致するため、re.MULTILINE は使用しません。

于 2018-08-05T20:36:59.200 に答える