LINUX.ORG.RU

Ответ на: комментарий от macumazan

Надо что бы +CAP_ALL попал в (\S+) при {(\S+)\s*(.+?)}

Я не знаю, как работает какая штука, но строчку «+CAP_ALL» по этой регулярке можно разобрать только как "(+CAP_AL)[](L)". Или последний элемент нужно сделать "(.*?)".

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

$item может принимать значение в виде строки из этого списка

        /var                            h
        /var/spool/postfix              
        bind 0.0.0.0/32:0 dgram ip
        +CAP_ALL

Мне надо взять в переменную первое слово, а во вторую переменную забрать отстаток до конца строки.

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

можно разобрать только как "(+CAP_AL)[](L)".

Почему это не попадает в \S+ ? Поигрался в разных онлайн чекерах, везде попало нормально.

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

Почему это не попадает в \S+

Оно прекрасно попадает в \S+. Но хотя бы один символ должен попасть в (.+?).

Вот первый попавшийся онлайн-чекер, хоть и на флеше:
http://regexr.com?36uag

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 1)
Ответ на: комментарий от macumazan

Почему это не попадает в \S+ ?

% set items {
    "/var                            h" 
    "/var/spool/postfix              " 
    "bind 0.0.0.0/32:0 dgram ip" 
    "+CAP_ALL"
}

    "/var                            h" 
    "/var/spool/postfix              " 
    "bind 0.0.0.0/32:0 dgram ip" 
    "+CAP_ALL"

% 
% foreach item $items { regexp  -- {(\S+)\s*(.+?)} $item a b c; puts "'$a' --- '$b' | '$c' "; }
'/var                            h' --- '/var' | 'h' 
'/var/spool/postfix              ' --- '/var/spool/postfix' | ' ' 
'bind 0.0.0.0/32:0 dgram ip' --- 'bind' | '0.0.0.0/32:0 dgram ip' 
'+CAP_ALL' --- '+CAP_AL' | 'L' 
% 
% foreach item $items { regexp  -- {(\S+)\s*(.+)?} $item a b c; puts "'$a' --- '$b' | '$c' "; }
'/var                            h' --- '/var' | 'h' 
'/var/spool/postfix              ' --- '/var/spool/postfix' | '' 
'bind 0.0.0.0/32:0 dgram ip' --- 'bind' | '0.0.0.0/32:0 dgram ip' 
'+CAP_ALL' --- '+CAP_ALL' | '' 
% 

Поигрался в разных онлайн чекерах, везде попало нормально.

адреса, явки, пароли (щепетильно до буковки и в кавычках) ?

anonymous
()

Все отлично, всем спасибо!

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