Beim Versuch, mithilfe der Regex „d“ festzustellen, ob eine Zeichenfolge numerisch ist, ist dies möglich Es kann festgestellt werden, dass das Muster auch mit IP-Adressen wie „78.46.92.168:8000“ übereinstimmt. Dies kann verwirrend sein, da man erwarten könnte, dass „d“ nur mit numerischen Ziffern übereinstimmt. Um zu verstehen, warum dies geschieht, ist es notwendig, das Verhalten von „d“ zu verstehen.
Die Zeichenklasse „d“ stimmt mit jeder überein einstelliges Zeichen im ASCII-Bereich (0-9). Der „ “-Quantifizierer bezeichnet ein oder mehrere Vorkommen des vorhergehenden Elements („d“ in diesem Fall) und gibt an, dass „d“ mit einer Folge von einer oder mehreren Ziffern übereinstimmt.
In der Beispielzeichenfolge „78.46. 92.168:8000“ ist die Sequenz „78“ eine gültige Übereinstimmung für „d“. Es entspricht den ersten 78, nicht der gesamten Zeichenfolge. Da die Übereinstimmung erfolgreich ist, ruft der Code doStuff() auf.
Um die gesamte Zeichenfolge abzugleichen und sicherzustellen, dass sie nur numerische Ziffern enthält , ist es notwendig, ein spezifischeres Regex-Muster zu verwenden.
Das obige ist der detaillierte Inhalt vonWarum stimmt der reguläre Ausdruck „\d' mit IP-Adressen wie „78.46.92.168:8000' überein und nicht nur mit numerischen Ziffern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!