The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"регулярное выражение  Perl"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"регулярное выражение  Perl"  
Сообщение от skuzma (ok) on 29-Май-06, 20:50 
В приведенном ниже программном коде взять переменные, проверяемые синтаксической конструкциями [ ... ]
в двойные кавычки как показано в комментариях к программе.
Написать регулярное выражение на  Perl
Может кто знает?


let "last_two_sym = $SECONDS - $SECONDS / 100 * 100" # десятки и единицы
if [ $last_two_sym -ge 11 -a $last_two_sym -le 19 ]

####  if [ "$last_two_sym" -ge 11 -a "$last_two_sym" -le 19 ]

then
    units="секунд"    # для чисел, которые заканчиваются на "...надцать"
else
    let "last_sym = $last_two_sym - $last_two_sym / 10 * 10"  # единицы
    case "$last_sym" in
      "1" )
        units="секунду"         # для чисел, заканчивающихся на 1
      ;;
      "2" | "3" | "4" )
        units="секунды"         # для чисел, заканчивающихся на 2, 3 и 4
      ;;
      * )
        units="секунд"          # для всех остальных (0, 5, 6, 7, 8, 9)
      ;;
    esac
fi

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "регулярное выражение  Perl"  
Сообщение от phpcoder email(??) on 30-Май-06, 07:19 
>в двойные кавычки как показано в комментариях к программе.
>Написать регулярное выражение на  Perl
>Может кто знает?

Что-то не очень понял задание, а додумывать не хочу. Если тебе нужно узнать что переменная заканчивается на что-то, то можно написать так: if($var~=/1$/) Знак доллара в конце означает как раз конец строки. (вроде синтаксис Перла правильно написал? ;) )

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "регулярное выражение  Perl"  
Сообщение от skuzma (??) on 30-Май-06, 08:14 
>>в двойные кавычки как показано в комментариях к программе.
>>Написать регулярное выражение на  Perl
>>Может кто знает?
>
>Что-то не очень понял задание, а додумывать не хочу. Если тебе нужно
>узнать что переменная заканчивается на что-то, то можно написать так: if($var~=/1$/)
>Знак доллара в конце означает как раз конец строки. (вроде синтаксис
>Перла правильно написал? ;) )


Надо переменные в квадратных скобках заключить в кавычки, а с переменными вне квадратных скобках ничего делать не надо

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "регулярное выражение  Perl"  
Сообщение от ACCA (ok) on 31-Май-06, 00:38 
Через полгода ты сам забудешь, зачем писал хитрый regexp. Оставь тупую и понятную программу.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "регулярное выражение  Perl"  
Сообщение от NuINu (??) on 31-Май-06, 14:25 
>В приведенном ниже программном коде взять переменные, проверяемые синтаксической конструкциями [ ...
>]
>в двойные кавычки как показано в комментариях к программе.
>Написать регулярное выражение на  Perl
>Может кто знает?
>
>
>let "last_two_sym = $SECONDS - $SECONDS / 100 * 100" # десятки
>и единицы
>if [ $last_two_sym -ge 11 -a $last_two_sym -le 19 ]
>
>####  if [ "$last_two_sym" -ge 11 -a "$last_two_sym" -le 19 ]

Ежели конечно ты не сильно волокеш в регехпах то можешь попробовать преобразовать вот эту программу в то что тебе нужно, она точно выделяет твои переменные, а захочешь что бы все это с командной строки, возись с палками сам ;-)))

#!/usr/bin/perl -w

while(<>) {
# данная программа ищет во входящем потоке строку:
#   if [ $last_two_sym -ge 11 -a $last_two_sym -le 19 ]
# и добавляет кавычки к переменным
# те делает
#   if [ "$last_two_sym" -ge 11 -a "$last_two_sym" -le 19 ]
# и выводит их.
# if(m/$(if \[ )(\$[^ ]*)([^$]*)(\$[^ ]*)( \])/) {
#     print $1.'"'.$2.'"'.$3.'"'.$4.'"'.$5;
  if(m/^(if \[ )(\$[^ ]*)([^\$]*)(\$[^ ]*)(.*$)/) {
     print $1.'"'.$2.'"'.$3.'"'.$4.'"'.$5;
  }
}


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру