Автор Тема: Регулярные выражения. Kоманда "ereg" ?  (Прочитано 4123 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Привет.

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

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

if (ereg("[a-z]{2,}", $var)) {
echo "Неправилно два одинаковых знака!";
}
else
echo "true";

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Регулярные выражения. Kоманда "ereg" ?
« Ответ #1 : 17 Июня 2003, 11:08:06 »
if (preg_match("!(.)\\\\1!", $var)) {
echo "Неправилно два одинаковых знака!";
}
else
echo "true";
Мне тормоз послужил толчком...

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Регулярные выражения. Kоманда "ereg" ?
« Ответ #2 : 17 Июня 2003, 11:56:47 »
Привет.

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

Cпасибо.

Cu.

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Регулярные выражения. Kоманда "ereg" ?
« Ответ #3 : 17 Июня 2003, 12:56:59 »
if (preg_match("!([A-ZА-Я])\\\\1!", $var)) {
echo "Неправилно два одинаковых знака!";
}
else
echo "true";
Мне тормоз послужил толчком...

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Регулярные выражения. Kоманда "ereg" ?
« Ответ #4 : 17 Июня 2003, 14:29:56 »
Cлушай Neter может мне скажеш урл на русском где я могу прочитать как мне ети регулярные выражения с командой preg_match исползовать, а то мне тут надо ешё кое што сделать, как то спрашивать не охото а то луди подумают мало ли што ;=)

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

Cu.

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Мне тормоз послужил толчком...

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Регулярные выражения. Kоманда "ereg" ?
« Ответ #6 : 17 Июня 2003, 16:58:40 »
Цитировать
Neter:
Асм.

\\m/_   _\\m/
работа в Украине

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Регулярные выражения. Kоманда "ereg" ?
« Ответ #7 : 17 Июня 2003, 21:01:42 »
Прочитал я про регулярные выражения, но вот не как непойму некоторую часть кода.

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

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

Cu.

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Регулярные выражения. Kоманда "ereg" ?
« Ответ #8 : 17 Июня 2003, 21:10:08 »
Hong
ты можешь ставить пять сколько угодно раз. Но одному человеку оценку ты можешь выставить только одну. Сиди-сиди, тыкай в кнопочку.
•••Jah\'d never let us down!•••

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Регулярные выражения. Kоманда "ereg" ?
« Ответ #9 : 17 Июня 2003, 21:17:46 »
Cлушай Хандер не умнечей, я тут народ о помощи спрашиваю, а если не знаеш как можно  2 раза или болше поставить оценку, то тогда и не болтай.

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Регулярные выражения. Kоманда "ereg" ?
« Ответ #10 : 17 Июня 2003, 23:55:43 »
Xander Типа да, типа я тут помогаю :)

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

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

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28