In PHP Assomiglia:
function check_condition($str) {
return preg_match(SOME_REGEX, $str);
}
purtroppo non c'è nessun operatore regex-partita in PHP a differenza di alcuni altri linguaggi. Dovrai chiamare una funzione. Seguire il manuale di preg_match()
e la pagina di manuale sul cosiddetto perl compatible regular expresssions (preg) in generale.
Qualcosa in più. Dopo aver letto la pagina di manuale di preg_match sai che il metodo restituisce un numero intero, il numero di corrispondenze trovate. Poiché il metodo ritorna dopo la prima corrispondenza, questo può essere solo 0
o 1
. A partire dal sistema di tipizzazione libera del PHP questo sarebbe un bene per il suo utilizzo in confronto sciolto come:
if(check_condition($str)) { ....
if(check_condition($str) == true) { ...
Ma non avrebbe funzionato in un rigoroso confronto:
if(check_condition($str) === true) { ...
Quindi sarebbe una buona idea di lanciare il valore di ritorno di preg_match:
function check_condition($str) {
return (boolean) preg_match(SOME_REGEX, $str);
}
Aggiornamento
ho pensato un po 'sul mio ultimo suggerimento e vedo un problema con questo. preg_match()
restituirà un intero se tutto funziona bene, ma booleano FALSE
se si verifica un errore. Ad esempio a causa di un errore di sintassi nel modello regex. Pertanto non sarai a conoscenza di errori se stai semplicemente lanciando su boolean
. Vorrei usare exceptions
per mostrare che un errore è stato accadendo:
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, $ stringa); – Robert
@CORRUPT non è forse NON bit a bit operatore **? ** –