Sugerowana odpowiedź obserwować wyjście less --version
nie zająć moją sytuację na Solaris 10 - pierwsze dwa wiersze czytać:
less 436
Copyright (C) 1984-2009 Mark Nudelman
Nie widzę oczywisty bibliotekę regex na liście dynamicznych zależnościach :
$ ldd /usr/bin/less
libcurses.so.1 => /lib/libcurses.so.1
libc.so.1 => /lib/libc.so.1
libm.so.2 => /lib/libm.so.2
/lib/libm/libm_hwcap1.so.2
/platform/sun4v/lib/libc_psr.so.1
man libc
wskazuje, że wiele interfejsów regex są oferowane przez bibliotekę: regcmp
, re_comp
i regcomp
.
Uruchamiając elfdump
przeciwko binarnego, widzę odniesienia do symbolu regcomp
:
$ elfdump /usr/bin/less | egrep -i 'posix|pcre|regcmp|re_comp|regcomp|regcomp-local'
[452] 0x0003d6a0 0x00000000 FUNC GLOB D 0 UNDEF regcomp
[452] regcomp
R_SPARC_JMP_SLOT 0x3d6a0 0 .rela.plt regcomp
Jeśli to jest link do funkcji kompilator regcomp
regex, wówczas README-text odpowiedź od @ hek2mgl sugeruje, że ten plik binarny może wykorzystywać wyrażenia regularne POSIX (lub wyrażenia Spencer V8, jeśli zostały skompilowane do pliku binarnego?).
Strona man dla regcomp(3C)
brzmi:
DESCRIPTION
These functions interpret basic and extended regular expres-
sions (described on the regex(5) manual page).
Eksperymentowanie z wyszukiwań w less
, odkryłem, że wyrażenie regularne powtarzanie {...}
operator działa bez backslashem ucieka. Strona podręcznika dla regex(5)
w moim systemie definiuje to jako składnię Extended Regular Expression (ERE).
Wreszcie znalazłem several interesujący descriptions interfejsów różnych silników regex, podsumowane poniżej:
Engine Interface
---------------- --------------------------------
GNU re_compile_pattern() and regex.h
PCRE pcre_compile and pcre.h/pcre2_compile and pcre2.h
POSIX regcomp() and regex.h
Henry Spencer V8 regcomp() and regexp.h
BSD re_comp()
System V regcmp()
nie do pełnych odpowiedzi, ale zacznę tutaj: http: //en.wikipedia. org/wiki/Comparison_of_regular_expression_engines – Jaxidian
Dzięki. Wszelkie porady dotyczące mapowania bibliotek w odpowiedzi @ hek2mgl na to? –