Автор Тема: Шаблон  (Прочитано 6485 раз)

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

Оффлайн Dart Sidius

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://khv.rhk.ru
Шаблон
« : 09 Апреля 2003, 03:39:33 »
Народ кто-нить знает как наюзать шаблон для проверки в переменной смеси русских и латинских букв...я знаю как это сделать несколькими if\'ами...:

if ($var=~ /[a-zA-Z]/) {
         if (
$var=~ /[^a-zA-Z]/) {
                   if (
$var=~ /[^a-zA-Z0-9_\\ \\-]/) {
                         print 
"В ввели смесь русских и латинских букв";
                   }
         }
}

...так вот у меня такая проблема...мне нужно чтобы эта проверка было в одном шаблоне, одним if\'ом

Оффлайн NCRangeR

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mephix.h1.ru
Шаблон
« Ответ #1 : 09 Апреля 2003, 06:39:55 »
Dart Sidius
можно как-то так:
$var =~ /(([a-zA-Z].*[а-яА-Я])|([а-яА-Я].*[a-zA-Z]))/
- How does the CPAN work?
 - With dark magic, evil-looking sacrificial knives and scantily clad virgins under pale moonlight.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Шаблон
« Ответ #2 : 09 Апреля 2003, 10:02:40 »
Цитировать
if ($var=~ /[a-zA-Z]/) {
         if ($var=~ /[^a-zA-Z]/) {
                   if ($var=~ /[^a-zA-Z0-9_ -]/) {
                         print "В ввели смесь русских и латинских букв";
                   }
         }
}


Или так...

if (($var=~ /[a-zA-Z]/) && ($var=~ /[^a-zA-Z]/) && ($var=~ /[^a-zA-Z0-9_ -]/)) {
                         print "В ввели смесь русских и латинских букв";
}

Оффлайн Dart Sidius

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://khv.rhk.ru
Шаблон
« Ответ #3 : 09 Апреля 2003, 14:01:20 »
Цитировать
Phoinix:
if ($var=~ /[a-zA-Z]/) {
if ($var=~ /[^a-zA-Z]/) {
if ($var=~ /[^a-zA-Z0-9_ -]/) {
print "В ввели смесь русских и латинских букв";
}
}
}

Или так...

if (($var=~ /[a-zA-Z]/) && ($var=~ /[^a-zA-Z]/) && ($var=~ /[^a-zA-Z0-9_ -]/)) {
print "В ввели смесь русских и латинских букв";
}

Да такой тупости ни разу не видел...я же просил одним шаблоном, а ты тупо слил всё....в одну строку

Оффлайн NCRangeR

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mephix.h1.ru
Шаблон
« Ответ #4 : 10 Апреля 2003, 05:26:41 »
Dart Sidius
а чем тебе
$var =~ /(([a-zA-Z].*[а-яА-Я])|([а-яА-Я].*[a-zA-Z]))/
не подходит? ;) вроде работает!
даже локаль вроде настраивать не надо..
- How does the CPAN work?
 - With dark magic, evil-looking sacrificial knives and scantily clad virgins under pale moonlight.

Оффлайн Dart Sidius

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://khv.rhk.ru
Шаблон
« Ответ #5 : 10 Апреля 2003, 07:15:17 »
Цитировать
NCRangeR:
а чем тебе
$var =~ /(([a-zA-Z].*[а-яА-Я])|([а-яА-Я].*[a-zA-Z]))/
не подходит?  вроде работает!
даже локаль вроде настраивать не надо..

Да не это как раз гуд...за чё те большое спасибо...меня просто добивает тупость некоторых людей...вот и всё

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Шаблон
« Ответ #6 : 10 Апреля 2003, 07:20:07 »
Dart Sidius
Это не их тупость, ага?

[off]тебе предложили лучшее решение, чем ты сделал сам, если ты не заметил.[/off]
•••Jah\'d never let us down!•••

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Шаблон
« Ответ #7 : 10 Апреля 2003, 11:13:49 »
moderator
Dart Sidius не стоит переходить на личности в данном форуме. Предупреждение.
The documentations is your friend

Оффлайн scalar

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Шаблон
« Ответ #8 : 10 Апреля 2003, 16:00:07 »
2Dart Sidius
Как-то на одном форуме (Perl форуме) я увидел тему “Учите перловку ламеры” и в этой теме был один ответ всего один ответ “Учитесь вежливости хамё”

Вот ИМХО правильный ответ на ваш вопрос (хотя символ | разделяет альтернативные шаблоны То есть их фактически два , шаблона ДОБАВИЛ третий)

$_="q";

unless(/(?:^[^А-Яа-яЁё]*[A-Za-z][^А-Яа-яЁё]*$)|(?:^[^A-Za-z]*[А-Яа-яЁё][^A-Za-z]*$)/)
{
   print "ВЫ ввели смесь русских и латинских букв";
}

работает правильно даже при анализе одной буквы Но таким методом могут пользоваться либо Аристократы либо Дегенераты ИМХО

Судя по всему вы Dart Sidius не Аристократ
Тогда если вы не дегенерат вам придётся пользоваться

$_=\'qы\';

if(/[A-Za-z]/ && /[А-Яа-яЁё]/)
{
   print "ВЫ ввели смесь русских и латинских букв";
}

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Шаблон
« Ответ #9 : 10 Апреля 2003, 18:37:21 »
А просто  [A-Za-zА-Яа-яЁё] не покатит?
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Alone

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 182
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Шаблон
« Ответ #10 : 10 Апреля 2003, 18:44:48 »
нет конечно из-за "ВЫ ввели смесь русских и латинских букв" :)

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Шаблон
« Ответ #11 : 10 Апреля 2003, 18:59:55 »
Меня интересует, есть ли принципиальная разница между
/[A-Za-z]/ && /[А-Яа-яЁё]/    и    /[A-Za-zА-Яа-яЁё]/
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Шаблон
« Ответ #12 : 10 Апреля 2003, 19:05:23 »
Mog.
Есть.
Первое требует наличия обоих условий, а второе их объединяет.
Так что второе съест с равным успехом и кириллицу и латиницу, и смесь, чего явно не нужно.
•••Jah\'d never let us down!•••

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Шаблон
« Ответ #13 : 10 Апреля 2003, 19:15:55 »
Xander т.е. это скорее "или" ?
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Шаблон
« Ответ #14 : 10 Апреля 2003, 23:13:10 »
Mog.
[...] объявляет класс символов. Подходит любой символ, включенный в этот класс.
Так что это совершенно точно ИЛИ.
•••Jah\'d never let us down!•••

 

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