私は文字列を持っています
「ZTFN00 識別番号は 89320394 で、携帯電話番号は +918017828848 です」
そして、キーワード ZTFN から最初に出現する数字 (この場合は89320394 )を特定したいと考えています。また、式は ZTFN で 00 を返さず、最初に出現した番号のみを返します。
やってみ\d+(?!ZTFN00)
たけどダメ!!
提案してください
これはそれを行う必要があります:
perl -ne '/ZTFN00\D+(\d+)/ && print $1,"\n"' yourfile
「数値」が常に空白で区切られている場合 (ZTFN の後に 00 がない場合)、それをテストとして使用できます。
perl -ne 'print m/\b(\d+)\b/,"\n"' yourfile
みんなありがとう !簡単に言えば、私が探しているのはこれです。キーワード ZTFN00 を持つ文字列がある場合、正規表現は文字列の左側または右側に最も近い 9 ~ 11 桁の数字を返すことができます。
オラクルの REGEXP_REPLACE 関数でこれを行いたいです。
以下はサンプル文字列の一部です
上記では、正規表現は 867278489 を返します。
上記では、正規表現は 123456778 を返します。
あなたの専門知識とガイダンスを共有してくれてありがとう
grep -Po 'ZTFN00.*?\K\b\d+\b'
ZTFN00
その番号の前に見られる行の単語境界の間にある最初の番号を返します。\K
可変長の後読みです: 「私の左側にあるものと一致しますが、それを保持しないでください」.