1

現在、正規表現は次のとおりです。

[A-Z]+(?=-\d+$)

これにより、以下の形式に従うほとんどの文字列の正しい値が引き出されます。

ANG-RGN-SOR-BCP-0004             i.e. BCP

SSただし、次のドキュメントではなく、次のドキュメントを引き出しますPMR

ANG-B31-OPS-PMR-MACE-SS-0229

つまり、基本的には第 4 項 (ハイフンの間) を抜き出したいので、 と を選択する必要がBCPありPMRます。

4

2 に答える 2

2

次の正規表現は、グループ1の4番目のアイテムを取得します。

(?:[A-Z0-9]+-){3}([A-Z0-9]+)
  • の最初のビット(?:...)は「非キャプチャグループ」であり、グループのように機能しますが、後方参照リストには表示されません。
  • 次のビットは、「これらの非キャプチャグループのうちの3つ」を意味します。
  • そして最後に、あなたが欲しいものを集めるための捕獲グループ。

ここでは、すべてのグループに大文字と数字のみが含まれていると想定しています[square brackets]。これらのグループが何であるかを表すために、の部分を変更する必要があります。


Pythonでより簡単に理解できるメソッド:

a = "ANG-B31-OPS-PMR-MACE-SS-0229"
part = a.split('-')[3]

print part

これにより「PMR」が得られます。

于 2013-03-20T09:43:55.477 に答える
1

これはあなたのニーズに合うはずです(デモ):

(?:.+?-){3}([^-]+)

最初のキャプチャグループの4番目の用語にアクセスできるようになります。

于 2013-03-20T09:44:00.657 に答える