URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2286
[ Назад ]

Исходное сообщение
"проблема с регулярными выражениями в expr"

Отправлено A.Shikoff , 15-Ноя-03 17:22 
В шелле (sh) определяем переменную

a=/usr/devel/billinger/./test.sh

Так вот! Просветите меня, темного, почему

expr ${a} : '\(/.*\)/\..*'
Нормально возвращает
/usr/devel/billinger

а
expr ${a} : '\(/.*\)/\.?/?.*'
не возвращает совпадений???

man re_format говорит:
An atom followed by `?' matches a sequence of 0 or 1 matches of the atom.

Так в чем проблема?


Содержание

Сообщения в этом обсуждении
"проблема с регулярными выражениями в expr"
Отправлено konst , 17-Ноя-03 13:26 
>В шелле (sh) определяем переменную
>
>a=/usr/devel/billinger/./test.sh
>
>Так вот! Просветите меня, темного, почему
>
>expr ${a} : '\(/.*\)/\..*'
>Нормально возвращает
>/usr/devel/billinger
>

>expr ${a} : '\(/.*\)/\.?/?.*'
>не возвращает совпадений???
>
>man re_format говорит:
>An atom followed by `?' matches a sequence of 0 or 1
>matches of the atom.
>
>Так в чем проблема?
не '$', а '\$'
---from info expr:--
In the regular expression, `\+', `\?', and `\|' are operators
which respectively match one or more, zero or one, or separate
     alternatives.