Bestätigen der numerischen Integrität von Zeichenfolgen mithilfe regulärer Ausdrücke
Beim Versuch, mithilfe des regulären Ausdrucks „d“ festzustellen, ob eine Zeichenfolge eine Zahl darstellt, kam es unerwartet Es kann zu Übereinstimmungen kommen. Beispielsweise findet der bereitgestellte Codeausschnitt „78.46.92.168:8000“ als positive Zahl, was nicht das beabsichtigte Ergebnis ist. Dies wirft die Frage auf, wie „.“ und „:“-Zeichen werden als Ziffern erkannt.
Die Antwort liegt im „d“-Ausdruck, der einer oder mehreren Ziffern innerhalb einer Zeichenfolge entspricht. Folglich wird die „78“ am Anfang der IP-Adresse gefunden und abgeglichen, was zu einer positiven Übereinstimmung führt.
Um dieses Problem zu beheben und sicherzustellen, dass das Regex-Muster nur numerische Werte erkennt, kann man es ändern zu „^d $“. Dieser überarbeitete Ausdruck sucht nach einer Übereinstimmung, die mit einer Ziffer beginnt, mit null oder mehr zusätzlichen Ziffern fortfährt und mit einer Ziffer endet.
Alternativ besteht ein einfacherer und prägnanterer Ansatz darin, die Methode „isdigit()“ von zu verwenden die Zeichenfolge, wie in „78.46.92.168:8000“.isdigit(). Diese Methode überprüft explizit, ob die gesamte Zeichenfolge die numerischen Kriterien erfüllt, wodurch jegliche Verwirrung bei der Interpretation vermieden wird.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe regulärer Ausdrücke sicherstellen, dass eine Zeichenfolge einen echten numerischen Wert darstellt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!