Может кто-нибудь помочь мне, как конкретный шаблон для preg_match
функционировать?
Примеры:
Можете ли вы помочь мне, пожалуйста, как проверить строку? Мой шаблон
/^(([a-zA-Z]+)(?! ) \.)+\.$/
Я знаю, что это неправильно, но я не могу понять это. Спасибо
Проверьте, как это соответствует вашим потребностям.
/^(?:[A-Z]+\. ?)+$/i
^
начало матчей(?:
открывает группа без захвата для повторения[A-Z]+
с i
флаг соответствует одному или нескольким альфа & верхний)\. ?
соответствует буквальной точке, за которой следует необязательный пробел)+
все это один раз или больше, пока $
конецЕсли вы хотите запретить пробел в конце, добавьте минус смотретьпозади: /^(?:[A-Z]+\. ?)+$(?<! )/i
Попробуй это:
$string = "Ing
Ing.
.Ing.
Xx Yy.
XX. YY.
XX.YY.";
if (preg_match('/^([A-Za-z]{1,}\.[ ]{0,})*/m', $string)) {
// Successful match
} else {
// Match attempt failed
}
Результат:
Regex подробно:
^ Assert position at the beginning of a line (at beginning of the string or after a line break character)
( Match the regular expression below and capture its match into backreference number 1
[A-Za-z] Match a single character present in the list below
A character in the range between “A” and “Z”
A character in the range between “a” and “z”
{1,} Between one and unlimited times, as many times as possible, giving back as needed (greedy)
\. Match the character “.” literally
[ ] Match the character “ ”
{0,} Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
)* Between zero and unlimited times, as many times as possible, giving back as needed (greedy)