#php
Вопрос:
У меня есть следующий код, который проверяет, есть ли в домене шаблон «Текст-Текст-целое число». Однако я получаю ошибку Неизвестный модификатор» -«, потому что — внутри не экранируется. Я пытался добавить раньше — но это не помогает.
<?php
$get_keyword_value = "([a-zA-Z])-([a-zA-Z])-([0-9])";
$get_current_domain_value = "domain-id-555";
if(preg_match($get_keyword_value, $get_current_domain_value)){
echo"Match";
}
else{
echo"No match";
}
?>
Ответ №1:
Измените свой шаблон на этот:-
$get_keyword_value = "/([a-zA-Z] )-([a-zA-Z] )-([0-9])/";
(Правка:- забыл добавить окончание двоеточия)
Ответ №2:
Шаблон должен быть разделен символом, например "/([a-zA-Z])-([a-zA-Z])-([0-9])/"
, "@([a-zA-Z])-([a-zA-Z])-([0-9])@"
, "#([a-zA-Z])-([a-zA-Z])-([0-9])#"
или чем-то еще.
Это позволяет передавать модификаторы, например "/([a-zA-Z])-([a-zA-Z])-([0-9])/i"
, для совпадения без учета регистра, например.
"([a-zA-Z])-([a-zA-Z])-([0-9])"
будет использоваться ()
как разделитель. Затем движок пытается использовать модификаторы, и первый из них-тот -
, которого не существует.
Примечание : Ваш шаблон не будет соответствовать вводу, потому ([a-zA-Z])
что будет выполняться поиск одного символа, но это другая тема