LINUX.ORG.RU

expr match string 'regex'

 


0

1

подскажите пожалуйста, судя по ману есть две конструкции: expr strin : regex или expr match string regex. Говорят что regex должен быть таким. Возвращает число, которое равно количеству найденных совпадений. Хочу найти цифру в строке:

expr "$LINE" : '[:digit:]'
expr "$LINE" : [:digit:]
expr "$LINE" : '[0-9]'
expr "$LINE" : [0-9]
expr match "$LINE" '[:digit:]'
expr match "$LINE" [:digit:]
expr match "$LINE" '[0-9]'
expr match "$LINE" [0-9]

не работает =( ЧЯДНТ?

В том же мане написано, что к регулярному выражению неявно в начало приписывается ^.

TeopeTuK ★★★★
()
Ответ на: комментарий от TeopeTuK

Имеется ввиду что с первого символа строки? значить чтобы это работало нужно .*[:digit:]? upd. не… тоже бред выдаёт, пока не догоняю логику.

SmilePlz
() автор топика
Последнее исправление: SmilePlz (всего исправлений: 5)
Ответ на: комментарий от SmilePlz

а где об этом можно прочитать? почему двойные квадратные скобки?

Ну это же само-собой, логически так должно быть, ибо всё, что в квадратных скобках - обычные символы кроме самих квадратных скобок, потому только они могут иметь специальное значение.

vodz ★★★★★
()
Ответ на: комментарий от vodz

Твоя логика понятна, спасибо за ответ. Для меня это было не очевидно потому что в языках программирования есть спец слова они интерпретируются отдельно. Думал что [:digit:] зарезервировано, теперь буду знать что только внутри скобок: [ [:digit:] ]

SmilePlz
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.