2009-06-04 2 views
-1

Beide Bedingungen gibt false zurück, wie können Sie sie unterscheiden?Wie können Sie feststellen, ob preg_replace() vom Start an nicht übereinstimmt oder übereinstimmt?

Kann es ohne den dritten Parameter gemacht werden?

+1

Können Sie einen Beispielcode angeben? Sind Sie sicher, dass Sie über preg_replace() sprechen? Der dritte Parameter ist das Subjekt, das benötigt wird. Das PHP-Handbuch besagt, dass preg_replace() auch nicht false zurückgibt, aber null bei Fehler, der ursprüngliche Betreff bei keinen Übereinstimmungen oder der geänderte Betreff, wenn Übereinstimmungen gefunden werden. – Matthew

Antwort

0

Vielleicht können Sie hier Beispielcode eingeben, aber Sie können in das fünfte Argument schauen: $count, was die Anzahl der Ersetzungen ist.

0

Sie sprechen vielleicht von strpos, die false zurückgibt, wenn es nichts entspricht oder 0, wenn die "Nadel" mit dem Anfang des "Heuhaufen" übereinstimmt. Diese sind beide ‚Falsey‘ Werte, so müssen Sie sie explizit mit einem dreifachen equals Betreiber überprüfen:

if (strpos($haystack, $needle) === false) { 
    // $needle NOT found in $haystack. 
} else { 
    // $needle was found in $haystack. 
} 
0

preg_replace mehrere Referenzen haben können, wenn Sie also zunächst Referenz etwas wie /^(.){min,max} gemacht, wo min/max ist Ihre Minimale/maximale Anzahl von Zeichen, die du am Anfang zu erreichen versuchst, dieses Match wäre \\ 1 und das nächste Set von Parens wäre \\ 2 und so weiter.

Ohne weitere Informationen ist es schwer zu sagen, ob diese oder andere Lösungen funktionieren.

0

Erstellen Sie eine Temp Var, die Suchzeichenfolge enthält.

Nach dem Ersetzen überprüfen, ob neue Zeichenfolge == Temp var.

Bei äquivalenter Rückgabe false sonst true zurück.

Verwandte Themen