W PHP wygląda:
function check_condition($str) {
return preg_match(SOME_REGEX, $str);
}
Niestety nie ma operator regex meczu w PHP w przeciwieństwie do niektórych innych językach. Będziesz musiał zadzwonić do funkcji. Postępuj zgodnie z instrukcją preg_match()
i stroną manuala o tak zwanym perl compatible regular expresssions (preg).
Coś dodatkowego. Po przeczytaniu strony manuala preg_match wiesz, że metoda zwraca liczbę całkowitą, liczbę znalezionych dopasowań. Ponieważ metoda powraca po pierwszym dopasowaniu, może to być tylko 0
lub 1
. Począwszy od luźnego systemu typowania PHP byłoby to dobre dla używania go w luźnych porównań jak:
if(check_condition($str)) { ....
if(check_condition($str) == true) { ...
Ale to nie będzie działać w ścisłej porównania:
if(check_condition($str) === true) { ...
Dlatego byłoby dobrze pomysł, aby rzucić wartość zwracaną preg_match:
function check_condition($str) {
return (boolean) preg_match(SOME_REGEX, $str);
}
Aktualizacja
Pomyślałem trochę o mojej ostatniej sugestii i widzę problem z tym. preg_match()
zwróci liczbę całkowitą, jeśli wszystko działa poprawnie, ale boolean FALSE
, jeśli wystąpi błąd. Na przykład z powodu błędu składni w wzorze regex. Dlatego nie będziesz świadomy błędów, jeśli właśnie przesyłasz do boolean
. użyłbym exceptions
aby pokazać, że błąd został dzieje:
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 nie jest operatorem bitowym NOT **? ** –