отсутствует)
Ваше (первое) открытие (
не имеет закрытия )
.Я предлагаю использовать текстовый редактор (например, Vim ), который поможет вам сопоставить ваши скобки.
Я не могу отличить это массовое регулярное выражение , где закрытие)
должно идти.
Возможно, попробуйте один из них: http://regexlib.com/REDetails.aspx?regexp_id=260
Например:
function is_valid_postcode($postcode) {
$validation_expression = '/^(((([A-PR-UWYZ][0-9][0-9A-HJKS-UW]?)|([A-PR-UWYZ][A-HK-Y][0-9][0-9ABEHMNPRV-Y]?))\s{0,2}[0-9]([ABD-HJLNP-UW-Z]{2}))|(GIR\s{0,2}0AA))$/i';
return preg_match($validation_expression, $postcode);
}
... возвращает ожидаемые результаты на выборках Iпробовал (включая «SW1A 1AA») и добавление i
в конец прекрасно работает с записями в нижнем регистре.
После комментариев.
Это не относится к ведению или завершениюпробельные.Вы можете легко добавить вызов к trim()
, если это представляет проблему для вас.Я бы не добавил это к регулярному выражению, так как оно уже очень длинное.
И согласно документация ...
preg_match()
возвращаетколичество совпадений шаблона.Это будет либо 0 раз (без совпадения), либо 1 раз, потому что preg_match()
остановит поиск после первого совпадения.preg_match()
возвращает FALSE
[0
], если произошла ошибка.