В PHP это выглядит следующим образом:
function check_condition($str) {
return preg_match(SOME_REGEX, $str);
}
К сожалению, нет оператора регулярных выражений матча в PHP в отличие от некоторых других языков. Вам нужно будет вызвать функцию. Следуйте руководству по эксплуатации preg_match()
и странице руководства о так называемом perl compatible regular expresssions (preg) в целом.
Нечто дополнительное. После прочтения страницы руководства preg_match вы знаете, что метод возвращает целое число, количество найденных совпадений. Поскольку метод возвращает после первого совпадения, это может быть только 0
или 1
. В рыхлой системы типизации РНР это было бы хорошо для его использования в свободных сравнениях, как:
if(check_condition($str)) { ....
if(check_condition($str) == true) { ...
Но это не будет работать в строгом сравнения:
if(check_condition($str) === true) { ...
Поэтому было бы хорошо идея бросить возвращаемое значение preg_match:
function check_condition($str) {
return (boolean) preg_match(SOME_REGEX, $str);
}
Update
Я немного подумал о своем последнем предположении, и я вижу проблему с этим. preg_match()
вернет целое число, если все работает нормально, но boolean FALSE
при возникновении ошибки. Например, из-за синтаксической ошибки в шаблоне регулярных выражений. Поэтому вы не будете знать об ошибках, если вы просто забрасываете boolean
. Я хотел бы использовать exceptions
, чтобы показать, что ошибка происходит:
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 это не поразрядный оператор NOT **? ** –