/ / regulärer Ausdruck zum Ermitteln des ersten Vorkommens einer Zahl aus einem bestimmten Schlüsselwort - Regex, Perl, Pcre, Pcregrep

Regulärer Ausdruck, um das erste Auftreten einer Zahl aus einem gegebenen Schlüsselwort zu finden - regex, perl, pcre, pcregrep

Ich habe eine Schnur

"ZTFN00-Identifikationsnummer ist 89320394 und Handynummer ist +918017828848"

und ich möchte das erste Auftreten einer Zahl identifizieren (89320394 in diesem Fall) aus dem Schlüsselwort ZTFN. Außerdem darf der Ausdruck beim ZTFN nicht 00 und nur das erste Vorkommen der Zahl zurückgeben.

Ich habe es versucht d+(?!ZTFN00) aber es funktioniert nicht !!

Bitte vorschlagen

Antworten:

3 für die Antwort № 1

Dies sollte es tun:

perl -ne "/ZTFN00D+(d+)/ && print $1,"n"" yourfile

Wenn Ihre "Nummer" immer durch Leerzeichen getrennt ist (wo 00 nach ZTFN nicht steht), können Sie dies als Test verwenden:

perl -ne "print m/b(d+)b/,"n"" yourfile

0 für die Antwort № 2
grep -Po "ZTFN00.*?Kbd+b"

Gibt die erste Zahl zurück, die sich zwischen den Wortgrenzen in einer Zeile befindet, in der ZTFN00 wird vor dieser Nummer gesehen. K ist ein Blick hinter die Kulissen mit variabler Länge: "Passen Sie an, was links von mir ist, aber behalten Sie es nicht bei".


0 für die Antwort № 3

Danke Leute ! Kurz gesagt, was ich suche, ist dies Wenn es eine Zeichenfolge mit dem Schlüsselwort ZTFN00 gibt, muss der Regex in der Lage sein, die nächstgelegene 9 bis 11-stellige Zahl links oder rechts von der Zeichenfolge zurückzugeben.

Ich möchte dies in der REGEXP_REPLACE-Funktion von Oracle tun.

Im Folgenden sind einige der Beispielzeichenfolgen aufgeführt

  1. Im Rahmen des Mähdreschers ist im Service SAP UPDATE_BP folgender Fehler aufgetreten (Fehler: 653, R11: 186: Nummer 867278489 bereits für ID-Typ ZTFN00 vorhanden)

Oben wird der reguläre Ausdruck 867278489 zurückgeben

  1. Im Rahmen des Mähdreschers ist im Service SAP UPDATE_BP folgender Fehler aufgetreten (Fehler: 653, R11: 186: Identifikationsnummer ZTFN00 123456778 bereits vorhanden)

Oben wird der reguläre Ausdruck 123456778 zurückgeben

Vielen Dank für das Teilen Ihres Fachwissens und Ihrer Anleitung