less --version
の出力は、Solaris 10上の私の状況に対処しなかった観測する提案の答え - 最初の2行は読み:
less 436
Copyright (C) 1984-2009 Mark Nudelman
私は、動的依存関係のリストで明らかに正規表現ライブラリを参照することはできません:regcmp
、とregcomp
:
$ 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
は、複数の正規表現インタフェースはライブラリによって提供されることを示しています。
バイナリに対してelfdump
を実行することにより、私は、シンボルregcomp
への参照を確認できます。これはregcomp
正規表現コンパイラ機能へのリンクである場合は、@ hek2mglからの回答で、その後README-テキストを
$ 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
をこのless
バイナリはPOSIX正規表現(またはバイナリにコンパイルされている場合はSpencer V8正規表現)を使用する可能性があることを示唆しています。
regcomp(3C)
のmanページには、読み取ります
less
で検索を試す
DESCRIPTION
These functions interpret basic and extended regular expres-
sions (described on the regex(5) manual page).
、私は正規表現の繰り返しオペレータは、バックスラッシュエスケープなしで動作{...}
ことを発見しました。私のシステム上のregex(5)
のマンページは、これを拡張正規表現(ERE)の構文として定義しています。
最後に、私は、様々な正規表現エンジンのインターフェースのseveral興味深いdescriptionsを見つけ以下に要約しました:
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()
出典
2016-08-05 17:03:22
crw
ない完全な答えが、私はここに起動したいします。http://en.wikipediaを。 org/wiki/Comparison_of_regular_expression_engines – Jaxidian
ありがとうございます。 @ hek2mglの答えにライブラリをマップする方法に関するアドバイスはありますか? –