1

入力文字列から特定の数値を抽出するという問題に直面しています。

たとえば、「this23 is 67 test 56 string 45」という文字列が 1 つあり、その文字列から 67 番を取得する必要がある場合、正規表現を使用してこれを抽出するにはどうすればよいですか?

正規表現を使用するだけです。

それについて何か考えはありますか?

前もって感謝します、

4

3 に答える 3

1

[^\d]*[\d]+[^\d]+([\d]+)

最初のチャンクは、0 個以上の非数字であり、その後に 1 つ以上の数字が続き、その後に 1 つ以上の非数字が続き、その後に 1 つ以上の数字が続きます。使用しているどの言語でもキャプチャできるように、括弧で囲みます。

于 2012-05-11T03:23:11.980 に答える
0
  • 数字以外を無視する
  • 任意の数字 (最初の数字) を無視する
  • 再び数字以外を無視します
  • 2番目の数字をキャプチャ

[\D]*[\d]+[\D]+([\d]+)

于 2012-05-11T03:28:55.137 に答える
0

これを試して:

^\D*\d+\D+(\d+)

Rubular を使用してこれをテストします -> 67 は最初のグループにあります。

後読みコマンド (?<=式) で正規表現を書くことは可能ですが、内部で * または + を使用することはできません (少なくとも Ruby と Perl では不可能です)。

于 2012-05-11T03:27:47.527 に答える