Forum Webscript.Ru

Программирование => PHP => Тема начата: Hong от 16 Июня 2003, 22:54:56

Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Hong от 16 Июня 2003, 22:54:56
Привет.

Помогите где тут ошибка:

Мне надо так штобы поcле занеcения в форму двух одинаковyх знаков друг за другом выходила ошибка. Ета чаcть сkрипта работает чуть-чуть неверно, еcли задать к примеру "аба" то ето тоже будет правилным значением т.к буква "а" преcутcвует два раза.

if (ereg("[a-z]{2,}", $var)) {
echo "Неправилно два одинаковых знака!";
}
else
echo "true";
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Neter от 17 Июня 2003, 11:08:06
if (preg_match("!(.)\\\\1!", $var)) {
echo "Неправилно два одинаковых знака!";
}
else
echo "true";
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Hong от 17 Июня 2003, 11:56:47
Привет.

Я немного не правилно написал, я хотел штобы толко болшые буквы не повторялись, а маленкие буквы, знаки могут повторяться.
Если есть у тебя время, помоги мне переписать етот маленкий Script.

Cпасибо.

Cu.
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Neter от 17 Июня 2003, 12:56:59
if (preg_match("!([A-ZА-Я])\\\\1!", $var)) {
echo "Неправилно два одинаковых знака!";
}
else
echo "true";
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Hong от 17 Июня 2003, 14:29:56
Cлушай Neter может мне скажеш урл на русском где я могу прочитать как мне ети регулярные выражения с командой preg_match исползовать, а то мне тут надо ешё кое што сделать, как то спрашивать не охото а то луди подумают мало ли што ;=)

Да кстати я тебе два раза 5 за помощь поставил.

Cu.
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Neter от 17 Июня 2003, 16:35:37
:)
http://providerz.ru/articles/php/regexp-intro.html
http://providerz.ru/articles/php/regexp-continue.html

Асм.
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Yukko от 17 Июня 2003, 16:58:40
Цитировать
Neter:
Асм.

\\m/_   _\\m/
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Hong от 17 Июня 2003, 21:01:42
Прочитал я про регулярные выражения, но вот не как непойму некоторую часть кода.

P.S Neter
Можешь пожалуйста мне обеснить зачем тут стоит в начале и конце "!" и для чего нужно \\\\1

спасибо за помощь.
(вторую пять поставлю дома ;=)

Cu.
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Xander от 17 Июня 2003, 21:10:08
Hong
ты можешь ставить пять сколько угодно раз. Но одному человеку оценку ты можешь выставить только одну. Сиди-сиди, тыкай в кнопочку.
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Hong от 17 Июня 2003, 21:17:46
Cлушай Хандер не умнечей, я тут народ о помощи спрашиваю, а если не знаеш как можно  2 раза или болше поставить оценку, то тогда и не болтай.
Название: Регулярные выражения. Kоманда "ereg" ?
Отправлено: Neter от 17 Июня 2003, 23:55:43
Xander Типа да, типа я тут помогаю :)

Hong "!" - это разделитель паттерна и его модификаторов, можно использовать и другие символы не являющиеся специальными, например "/".
preg_match("/[a-z]/i", "AfzHJug");
Найдёт все буквы латинского алфавита вне зависимости от регистра.

\\\\1 - это переменная содержащая результат работы подпатена(subpattern).
Например:
((маленький) (мальчик)) шёл

\\\\0 - Весь паттерн (маленький мальчик шёл)
\\\\1 - маленький мальчик
\\\\2 - маленький
\\\\3 - мальчик