Forum Webscript.Ru

Программирование => Perl => Тема начата: Croaker от 20 Августа 2002, 15:54:53

Название: Опять регулярные
Отправлено: Croaker от 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 от 20 Августа 2002, 16:53:54
На перле прокатит так:
/[а-яА-Я]+\\s[а-яА-Я]+\\s[а-яА-Я]+/
если сервак кириллицу поддерживает.
Название: Опять регулярные
Отправлено: Croaker от 20 Августа 2002, 17:05:24
не.. не катит
Название: Опять регулярные
Отправлено: GotZfild от 20 Августа 2002, 18:44:56
/[^a-z\\d\\s]+\\s[^a-z\\d\\s]+\\s[^a-z\\d\\s]+/i
Название: Опять регулярные
Отправлено: NeoNox от 20 Августа 2002, 19:01:07
$name=~m/^[а-яА-Я0-9 ]+$/

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

$name=~m/^[а-яА-Я0-9 \\_]+$/
Название: Опять регулярные
Отправлено: ююю от 20 Августа 2002, 22:13:48
$name=\'Иванов Иван Иваныч\';
print \'ok\' if ($name=~m/(?:[А-Я][а-я]+\\s){2}[А-Я][а-я]+/);
$name=\'Иванов ван Иваныч\';
print \'ok\' if ($name=~m/(?:[А-Я][а-я]+\\s){2}[А-Я][а-я]+/);
Название: Опять регулярные
Отправлено: NeoNox от 21 Августа 2002, 02:25:24
ююю а ты проверила? ;)

PS. Может пора зарегистрироваться?
Название: Опять регулярные
Отправлено: Croaker от 21 Августа 2002, 10:30:37
ююю
Спаибо =)
Название: Опять регулярные
Отправлено: ююю от 21 Августа 2002, 12:11:12
>>ююю а ты проверила?
Проверенно! Дело в  том что мы здесь в Казахстане считаем что ФИО это есть
“ Три слова разделённых пробельными символами первая буква которых заглавная”
По этому
$name=\'Иванов ван Иваныч\';
print \'Не ФИО\' unless ($name=~m/(?:[А-Я][а-я]+\\s){2}[А-Я][а-я]+/);
Название: Опять регулярные
Отправлено: NeoNox от 21 Августа 2002, 12:15:47
А, в таком ключе...:)
Я уже к никам настолько привык. Не обратил внимание на заглавные буквы
Цитировать
Фамилия Имя Отчество на русском языке.
Название: Опять регулярные
Отправлено: Croaker от 21 Августа 2002, 12:31:13
ююю
Что есть ":?" ?
Название: Опять регулярные
Отправлено: NeoNox от 21 Августа 2002, 12:43:46
Цитировать
Что есть ":?" ?

А точнее (?: ... ) это ограничивающая группировка без сохранения совпадений.
Название: Опять регулярные
Отправлено: Croaker от 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, 12:54:33
(?:шаблон) Группирует элементы шаблона В отличие от обычных круглых скобок не создаёт нумерованной переменой