0

この例では

BIOLOGIQUES                                                             3433     130906 / 3842

3433 を選択するには

BIOLOGIQUES\s+(\d+)

しかし、最後の 3842 を選択するには、どのような変更を行う必要がありますか?

4

2 に答える 2

1

次のようなパターンを使用できます。

BIOLOGIQUES\s+(\d+)\s+(\d+)\s+/\s+(\d+)

これは一致します:

  • リテラルBIOLOGIQUES
  • 1 つ以上の空白文字
  • グループ 1 でキャプチャされた 1 つ以上の数字
  • 1 つ以上の空白文字
  • グループ 2 でキャプチャされた 1 つ以上の数字
  • 1 つ以上の空白文字
  • リテラル/
  • 1 つ以上の空白文字
  • グループ 3 でキャプチャされた 1 つ以上の数字

例の文字列を指定すると、グループ 1、2、および 3 でそれぞれ 3433、130906、および 3842 がキャプチャされます。多くの正規表現エンジンはスラッシュを使用して正規表現リテラル (JavaScript など) を区切るため、次のエスケープが必要になる場合があることを忘れないでください/

/BIOLOGIQUES\s+(\d+)\s+(\d+)\s+\/\s+(\d+)/

もちろん/、文字列内の「' の後の最後の数字」を見つけることだけが必要な場合は、はるかに簡単です。これはトリックを行います:

/.*?(\d+)\D*$

これは一致します

  • リテラル/
  • 0 個以上の任意の文字 (貪欲でない)
  • グループ 1 でキャプチャされた 1 つ以上の数字
  • 0 個以上の数字以外の文字
  • 文字列 (または複数行モードの行) の末尾
于 2013-09-15T03:14:01.813 に答える