text = ‘20,570円(税込)/ 18,700(税抜)税率:10%’ match = re.search(r’b((/ )d{1,3}(,d{3})*)(税抜)b’, text)

この正規表現では、与えられたテキストから (税抜) という文字列が含まれる部分を検索しようとしています。ただし、b を使って単語境界を指定していますが、この場合、b はパターンの開始や終了ではなく、単語の境界を示すために使われています。

正規表現のパターン ((/ )d{1,3}(,d{3})*) は、以下のように解釈されます:

  • () に囲まれた部分はキャプチャーグループであり、マッチした部分全体がキャプチャされます。
  • / : スラッシュの後にスペースがあるパターンを示します。
  • d{1,3}: 1 から 3 桁の数字を示します。
  • (,d{3})*: カンマと 3 桁の数字が 0 回以上繰り返されるパターンを示します。

このパターンが / 18,700 のようなパターンにマッチすることを意図しているようです。

しかし、与えられたテキストには (税抜) という文字列が含まれるため、現在の正規表現パターンではマッチしません。正規表現を修正して、(税抜) を含む部分にマッチするようにする必要があります。

未分類

Posted by ぼっち