знает любой, почемуBSD с GNU выраж
expr "4" : '-\?[0-9]\+$'
возвращает 0 на Mac OS X и 1 на Linux?
Факт: Mac использует BSD выраж Linux использует GNU
К сожалению, я первоначально набраны
expr "4" : '-\?[0-9]+$'
знает любой, почемуBSD с GNU выраж
expr "4" : '-\?[0-9]\+$'
возвращает 0 на Mac OS X и 1 на Linux?
Факт: Mac использует BSD выраж Linux использует GNU
К сожалению, я первоначально набраны
expr "4" : '-\?[0-9]+$'
expr
занимает основное регулярное выражение, а не расширенное регулярное выражение. (Для определения каждого из них см. http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html).
Основные регулярные выражения не поддерживают либо операторы , и +
; вам нужно использовать границы.
?
осуществляется с \{0,1\}
(от 0 до 1 вхождений)+
реализуется с \{1,\}
(1 или более вхождений)GNU expr
появляется, чтобы позволить им как продолжение, если они экранируются ,
Ниже портативный вызов, который должен работать в любой POSIX-совместимой реализации expr
:
expr "4" : '-\{0,1\}[0-9]\{1,\}$'
Это было очень, очень ясно !!! – frankliuao
Он выводит 0 в Linux, а также. – chepner
Извините, у меня была опечатка. – frankliuao
Ждем ответа – frankliuao