-2

私は文字列を持っています

「ZTFN00 識別番号は 89320394 で、携帯電話番号は +918017828848 です」

そして、キーワード ZTFN から最初に出現する数字 (この場合は89320394 )を特定したいと考えています。また、式は ZTFN で 00 を返さず、最初に出現した番号のみを返します。

やってみ\d+(?!ZTFN00)たけどダメ!!

提案してください

4

3 に答える 3

3

これはそれを行う必要があります:

perl -ne '/ZTFN00\D+(\d+)/ && print $1,"\n"' yourfile

「数値」が常に空白で区切られている場合 (ZTFN の後に 00 がない場合)、それをテストとして使用できます。

perl -ne 'print m/\b(\d+)\b/,"\n"' yourfile
于 2016-01-22T13:24:03.990 に答える
0

みんなありがとう !簡単に言えば、私が探しているのはこれです。キーワード ZTFN00 を持つ文字列がある場合、正規表現は文字列の左側または右側に最も近い 9 ~ 11 桁の数字を返すことができます。

オラクルの REGEXP_REPLACE 関数でこれを行いたいです。

以下はサンプル文字列の一部です

  1. 結合の一部として SAP UPDATE_BP サービスで次のエラーが発生しました (エラー:653、R11:186:番号 867278489 ID タイプ ZTFN00 に対して既に存在します)

上記では、正規表現は 867278489 を返します。

  1. コンバインの一環として、SAP UPDATE_BP サービスで以下のエラーが発生しました (エラー:653、R11:186:番号 ZTFN00 識別番号 123456778 は既に存在します)。

上記では、正規表現は 123456778 を返します。

あなたの専門知識とガイダンスを共有してくれてありがとう

于 2016-02-08T03:05:53.143 に答える
0
grep -Po 'ZTFN00.*?\K\b\d+\b'

ZTFN00その番号の前に見られる行の単語境界の間にある最初の番号を返します。\K可変長の後読みです: 「私の左側にあるものと一致しますが、それを保持しないでください」.

于 2016-01-22T15:05:03.967 に答える