Wenn Sie mit Regex überprüfen, ob eine Zeichenfolge eine Zahl ist, scheint das „d“-Muster ausreichend zu sein. Dieses Muster stimmt jedoch unbeabsichtigt mit Zeichenfolgen wie „78.46.92.168:8000“ überein, was unerwünscht ist.
Dieses Verhalten tritt auf, weil „d“ mit einer beliebigen Folge einer oder mehrerer Ziffern innerhalb der Zeichenfolge übereinstimmt. Im gegebenen Beispiel stimmt es mit den Anfangsziffern „78“ überein. Um sicherzustellen, dass das Muster mit der gesamten Zeichenfolge übereinstimmt, müssen wir es ändern, um den Anfang und das Ende der Zeichenfolge zu überprüfen:
^\d+$
Dieses Muster beginnt mit dem Caret-Symbol „^“, das den Anfang der Zeichenfolge anzeigt Zeichenfolge und endet mit dem Dollarsymbol „$“, das das Ende der Zeichenfolge angibt. Wenn die Zeichenfolge nun ein nicht-stelliges Zeichen enthält, stimmt das Muster nicht überein.
Ein alternativer, einfacherer Ansatz besteht darin, die Methode „isdigit()“ für die Zeichenfolge selbst zu verwenden:
"78.46.92.168:8000".isdigit()
Diese Methode gibt False zurück, wenn die Zeichenfolge ein nicht-stelliges Zeichen enthält. Dies macht sie zu einer effizienten und genauen Methode, um festzustellen, ob eine Zeichenfolge eine gültige Zahl darstellt.
Das obige ist der detaillierte Inhalt vonWie stellen Sie sicher, dass Ihre Regex bei der Suche nach Zahlen mit der gesamten Zeichenfolge übereinstimmt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!