这是我使用的较少:
less 458 (POSIX regular expressions)
Copyright (C) 1984-2012 Mark Nudelman
在Vim中,它是\<
和\>
,在大多数其他正则表达式中,它是\b
。
答案 0 :(得分:8)
字符类[[:<:]]
和[[:>:]]
分别在OS X 10.11.5上的系统less
中匹配单词的开头和结尾。我还没有办法让记录的简短表单\<
,\>
或\b
正常工作。
(感谢denis有关检查man 7 re_format
的建议。)
答案 1 :(得分:4)
您的less
版本是使用posix正则表达式构建的,就好像:
wget http://ftp.gnu.org/gnu/less/less-451.tar.gz
tar zxf less-451.tar.gz
cd less-451
./configure --with-regex=posix
make
然而,显然\<
是否有效的原因并不依赖于此:
\<
即使使用上述命令构建也能正常工作,使用posix regex --with-regex
之外的pcre
的所有可能值,\<
不适用于其中任何值。如果我使用pcre
进行构建,那么\b
将起作用,而不是\<
。总而言之,我不知道如何使其与\<
一起使用。但是您可以使用pcre
构建自己,然后它应该与\b
一起使用。如果您不是系统管理员,则可能需要在主目录下使用--prefix
进行安装,例如--prefix=$HOME/opt
。在make
步骤之后,确认它适用于./less /path/to/some/file
。如果看起来不错,请使用make install
完成。
答案 2 :(得分:0)
less
通常使用vi
语法,即\<
和\>
,除非使用--with-regex=none
configure选项编译或者找到正则表达式库在编译时不提供单词边界搜索。您的系统也可能提供不同的语法。
答案 3 :(得分:0)
首先查看您计算机上的<A>m()
是否具有&#34;增强功能&#34;
列出man 7 re_format
等的部分
如果是,请更改\<
中的一行:
less-451/pattern.h
然后#define REGCOMP_FLAG REG_ENHANCED // not REG_EXTENDED
会理解./configure --with-regex=posix; make less
。
适用于Macosx 10.8;在其他系统上,请尝试关注\<
(Gnu.org有十几个
Regular-expression-syntaxes?! )