Автор Тема: Опять регулярные  (Прочитано 4118 раз)

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

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Опять регулярные
« : 20 Августа 2002, 15:54:53 »
Хочу на Perl`e написать проверяльщик поля на следующее соответсвие: Фамилия Имя Отчество на русском языке.

на PHP работало вот это:
/[^A-Za-z0-9]+\\s[^A-Za-z0-9]+\\s[^A-Za-z0-9]+/

на Perl`e не прокатило =(.

Примет ли Perl русские символы как [^A-Za-z0-9] или нет?
Не все коту матрица.

Unregistered

  • Гость
Опять регулярные
« Ответ #1 : 20 Августа 2002, 16:53:54 »
На перле прокатит так:
/[а-яА-Я]+\\s[а-яА-Я]+\\s[а-яА-Я]+/
если сервак кириллицу поддерживает.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Опять регулярные
« Ответ #2 : 20 Августа 2002, 17:05:24 »
не.. не катит
Не все коту матрица.

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Опять регулярные
« Ответ #3 : 20 Августа 2002, 18:44:56 »
/[^a-z\\d\\s]+\\s[^a-z\\d\\s]+\\s[^a-z\\d\\s]+/i
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Опять регулярные
« Ответ #4 : 20 Августа 2002, 19:01:07 »
$name=~m/^[а-яА-Я0-9 ]+$/

Принимает: Пробел, Русские буквы и Цифры. Если Подчеркивание еще нужно то:

$name=~m/^[а-яА-Я0-9 \\_]+$/
The documentations is your friend

ююю

  • Гость
Опять регулярные
« Ответ #5 : 20 Августа 2002, 22:13:48 »
$name=\'Иванов Иван Иваныч\';
print \'ok\' if ($name=~m/(?:[А-Я][а-я]+\\s){2}[А-Я][а-я]+/);
$name=\'Иванов ван Иваныч\';
print \'ok\' if ($name=~m/(?:[А-Я][а-я]+\\s){2}[А-Я][а-я]+/);

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Опять регулярные
« Ответ #6 : 21 Августа 2002, 02:25:24 »
ююю а ты проверила? ;)

PS. Может пора зарегистрироваться?
The documentations is your friend

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Опять регулярные
« Ответ #7 : 21 Августа 2002, 10:30:37 »
ююю
Спаибо =)
Не все коту матрица.

ююю

  • Гость
Опять регулярные
« Ответ #8 : 21 Августа 2002, 12:11:12 »
>>ююю а ты проверила?
Проверенно! Дело в  том что мы здесь в Казахстане считаем что ФИО это есть
“ Три слова разделённых пробельными символами первая буква которых заглавная”
По этому
$name=\'Иванов ван Иваныч\';
print \'Не ФИО\' unless ($name=~m/(?:[А-Я][а-я]+\\s){2}[А-Я][а-я]+/);

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Опять регулярные
« Ответ #9 : 21 Августа 2002, 12:15:47 »
А, в таком ключе...:)
Я уже к никам настолько привык. Не обратил внимание на заглавные буквы
Цитировать
Фамилия Имя Отчество на русском языке.
The documentations is your friend

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Опять регулярные
« Ответ #10 : 21 Августа 2002, 12:31:13 »
ююю
Что есть ":?" ?
Не все коту матрица.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Опять регулярные
« Ответ #11 : 21 Августа 2002, 12:43:46 »
Цитировать
Что есть ":?" ?

А точнее (?: ... ) это ограничивающая группировка без сохранения совпадений.
The documentations is your friend

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Опять регулярные
« Ответ #12 : 21 Августа 2002, 12:52:52 »
просто я пока не силен в перле и его "регулярных"
соответственно проверка на e-mail будет следующая:

$email =~/(?:[A-Za-z0-9\\_\\-]{1,}\\@[A-Za-z0-9\\_\\-]{1,}\\.[A-Za-z]{2,4})/
« Последнее редактирование: 21 Августа 2002, 13:09:54 от Croaker »
Не все коту матрица.

ююю

  • Гость
Опять регулярные
« Ответ #13 : 21 Августа 2002, 12:54:33 »
(?:шаблон) Группирует элементы шаблона В отличие от обычных круглых скобок не создаёт нумерованной переменой

 

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