The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблема с регулярными выражениями в bash-скрипте, !*! drew53, 13-Ноя-16, 20:26  [смотреть все]
Здравствуйте, гуру!
Прошу сильно не пинать, так как, можно сказать, только начал изучать bash-scripting, а регулярные выражения для меня -- так это просто творение сотоны и язык не этой планеты...)))))

Пытаюсь решить простую (как мне казалось) задачку: есть переменная, содержащая строчные буквы, завершаемые цифрами на конце. Все без пробелов, например, blabla123. Нужно получить порядковый номер blabl'ы, то есть цифровой хвост.

Бьюсь полдня, ничего не понимаю((( Вобщем, объясните, пожалуйста, кто-нибудь: следующий код дает вот какие результаты.


stringZ=abcABC123ABCabc
echo `expr match "$stringZ" '\(.[b-c]*[A-Z]..[0-9]\)'`

stringZ=blabla12
echo `expr match "$stringZ" '\([a-z]\)'`
echo `expr match "$stringZ" '\([a-z]\+\)'`
echo `expr match "$stringZ" '\([0-9]\)'`
echo `expr match "$stringZ" '\([0-9]\+\)'`

Результат работы скрипта:
abcABC1
b
blabla
<пустая строка>
<пустая строка>

То есть, шаблон [0-9] в первом примере (честно слизанном с Вашего портала =) находит цифры в строке. Шаблон [a-z] в моем случае также работает верно, и даже [a-z]+. А вот ни[0-9], ни [0-9]+ в моем случае цифирь не видит "наглухо"(((((

Я понимаю, конечно, что ошибка в ДНК))), но в какое место скрипта она реплицировалась??? Всю голову сломал((( Выручайте?!
Заранее благодарю!

  • Проблема с регулярными выражениями в bash-скрипте, !*! drew53, 21:34 , 13-Ноя-16 (1)
    Похоже, дошло...
    Результатом применения шаблона становится строка, состоящая из одних только цифр, а bash, в свою очередь, ввиду своей нестрожайшей типизации, считает эдакое числом, а не строкой. Соответственно, нет строки -- строка пустая...
    Могу ошибаться, но очень похоже.

    Тогда, "паравозом" другой вопрос: как в описанном случае получить в переменную цифровой хвост такой вот строки?
    Заранее благодарю за помощь!

    Всё... Нашел: https://www.opennet.ru/openforum/vsluhforumID9/8372.html
    Простите... лох...

    • Проблема с регулярными выражениями в bash-скрипте, !*! Pahanivo, 22:00 , 13-Ноя-16 (2)
      > Похоже, дошло...
      > Результатом применения шаблона становится строка, состоящая из одних только цифр, а bash,
      > в свою очередь, ввиду своей нестрожайшей типизации, считает эдакое числом, а
      > не строкой. Соответственно, нет строки -- строка пустая...
      > Могу ошибаться, но очень похоже.

      вместо построения догадок лучше почитать ман по данным конкретным регексам, и вообще что такое регексы
      тут думаю в самом регексе неявно подразумевается маркеры начала и конца строки




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

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