In PHP sieht es so aus:
function check_condition($str) {
return preg_match(SOME_REGEX, $str);
}
Leider im Gegensatz zu einigen anderen Sprachen keine Regex-Match-Operator in PHP gibt es. Sie müssen eine Funktion aufrufen. Befolgen Sie das Handbuch von preg_match()
und die Handbuchseite über das so genannte perl compatible regular expresssions (preg) im Allgemeinen.
Etwas zusätzliches. Nach dem Lesen der Handbuchseite von preg_match wissen Sie, dass die Methode eine Ganzzahl zurückgibt, die Anzahl der gefundenen Übereinstimmungen. Wenn die Methode nach der ersten Übereinstimmung zurückkehrt, kann dies nur 0
oder 1
sein. Ab dem losen Typisierungssystem von PHP würde dies wie für die Verwendung in losen Vergleichen gut sein:
if(check_condition($str)) { ....
if(check_condition($str) == true) { ...
Aber es wäre in einem strengen Vergleich nicht:
if(check_condition($str) === true) { ...
Deshalb wäre es gut sein Idee, den Rückgabewert von preg_match zu werfen:
function check_condition($str) {
return (boolean) preg_match(SOME_REGEX, $str);
}
aktualisieren
Ich habe ein wenig über meinen letzten Vorschlag nachgedacht und sehe ein Problem damit. preg_match()
wird eine Ganzzahl zurückgeben, wenn alles in Ordnung ist, aber Boolean FALSE
, wenn ein Fehler auftritt. Zum Beispiel wegen eines Syntaxfehlers im Regex-Muster. Daher werden Sie keine Fehler bemerken, wenn Sie nur auf boolean
werfen. Ich würde exceptions
zu zeigen, verwenden, dass ein Fehler passiert:
function check_condition($str) {
$ret = preg_match(SOME_REGEX, $str);
if($ret === FALSE) {
$error = error_get_last();
throw new Exception($error['message']);
}
return (boolean) $ret;
}
['preg_match()'] (http://php.net/preg-match)? – BlitZ
preg_match ($ regex, $ string); – Robert
@CORRUPT ist es nicht bitweise NOT Operator **? ** –