1

Pythonは、文字列を処理するためのすばらしい言語です。Rへの移植を考えているかなり高度な正規表現をいくつか作成しました。Rは最近perl(?P)機能を追加しましたが、Rで次の例を実行するのに最適な方法がわかりません。

import re

pill_unit = r"(?:PILL|CAPSULE)"
dosage = r"""
(?P<pills>
  ½|
  \d+(?:\.\d+|)|
  \bONE\b)\s*
{unit}""".format(unit = pill_unit)
compiled_regex = re.compile(dosage, re.VERBOSE)

print(compiled_regex.search("1 PILL A DAY").group("pills"))

sprintf()は、パラメーターに名前を付けて、それらが正しい場所に配置されることを知っている.format()と比較すると不器用に見えます。

4

1 に答える 1

0

正規表現を読み取り可能なコードにフォーマットするベータプログラムを作成しました。グループ分析、バランス調整、その他多くのことも行います。エンジン用のその他の特殊処理フラグ。フォーマット化された方法で非常に大きな式を見るのは本当にユニークです。

これらでは、グループ処理フラグがオンになっています

(?P<pills>
  ½|
  \d+(?:\.\d+|)|
  \bONE\b)\s*
(?:PILL|CAPSULE)

の中へ

1    (?P<pills>
          ½
       |  
          \d+
          (?: \.\d+ | )
       |  
          \bONE\b
1    )
     \s*
     (?: PILL | CAPSULE )

次に、

(?P<pills>½|\d+(?:\.\d+|)|\bONE\b)\s*(?:PILL|CAPSULE)

それからこれ

1    (?P<pills>
          ½
       |  \d+
          (?: \.\d+ | )
       |  \bONE\b
1    )
     \s*
     (?: PILL | CAPSULE )
于 2012-07-10T22:54:43.710 に答える