Подскажите

Статус
В этой теме нельзя размещать новые ответы.

gauss_gauss

Постоялец
Регистрация
13 Окт 2011
Сообщения
97
Реакции
4
Надо следующее
если слова содержит только символы латинского алфавита (незаглавные) и обратный слеш - вывести: "good"
если слова содержат иные символы - вывести: "bad"

вот код:
PHP:
<?php
 
$var = "dasist\fantastisch";
 
if (preg_match("/^[a-z\\]{0,}$/", $var)) {
        echo "good";
}
else {
    echo "badgood";
}
 
?>
При запуске скрипта пишет:

Warning: preg_match() [function.preg-match]: Compilation failed: missing
terminating ] for character class at offset 12 in
G:\home\tester\www\test.php on line 5


Подскажите, plz, как правилно написать?
 
Экранировать слеши нужно не только с учетом регулярного выражения, но и с учетом особенности обработки строк в PHP

PHP:
<?php
 
$var = "dasist\\fantastisch";
 
if (preg_match("/^[a-z\\\\]{0,}$/", $var)) {
 
        echo "good";
 
}
 
else {
 
    echo "badgood";
 
}
 
?>

Ну если можно еще немного критики, то вместо такой комбинации {0,} лучше ставить *, а судя по условию, то лучше вообще ставить +, так как пустые строки будут проходить за подходящие
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху