Pythonで否定的なlookbehind REを書くことができません。これらのサンプルはいくつかのサンプル文字列です(私は80,000以上のテキストメッセージをこのように持っています)。Pythonの否定的なlookbehind RE
patient 100/64 bp is 120/90 *some string* 100H/64 patient bp 120/90 location 100c/64 patient bp120/90 *some string* *some string* 100/64 patient *this string with no 'bp' value*
ここで120/90
は、患者の血圧を意味します。私はちょうど血圧ではなく、「病棟番号/ベッド番号」(例えば:100/64
、100H/64
、100c/64
、100/64
)を抽出したいと思います。私はそれが固定長を必要とするので、負のlookbehindアサーションを書くことができません。ここに私のREは、次のとおりです。
(?<!bp.*)(\b[0-9]{1,3}[a-zA-Z]?)\/([0-9]{1,3}[a-zA-Z]?\b)
私は否定後読みに.*
を持っているように、これは機能していません。これで私を助けてください。
編集:各患者レコードは改行で開始され、これらのレコードはHadoop処理から取得したテキストファイルに格納されています。血圧値は必ずしも終わりではない(または、一部の記録には現れないかもしれない)、病棟/ベッドの値は必ずしも始まりではない。
わかりません。これらが別々の行であれば、最初のスペースまですべてを取得してみませんか?それはあなたのために働くでしょうか? – rajasaur
私は突き刺しを編集しました、病棟/ベッドは常に始まりではありません。そのためには〜ありません – Maggie
入力はリスト内の一連のpython文字列ですか?各患者の記録が新しい行を始める1つの文字列? Pythonの入力フォーマットを与えると、誰かがあなたのためにもう少しやり遂げることができます。 – Paddy3118