js 自定义 trim 函数的具体使用方法详解
1228
2022-09-23
基本及扩展的正则表达式
正则表达式元字符集有两种版本:基本的和扩展的。正则表达式grep使用的是其元字符集的基本集.egrep或者grep -E 用的是正则表达式元字符集的扩展集。Gnu grep 同时使用这两个集。基本集包括:^ , $ , . , * ,[] ,[^] ,\<, and ,\>
另外,Gnu 将\b,\w 和\W 作为POSIX新增的正则表达式元字符予以识别。-E 选项使得Gnu grep 能够使用扩展集。即使在没有—E选项的情况下,标准的grep在默认情况下也支持以反斜杠开头的扩展正则表达式元字符集。例如:?,+ ,{}, | ,( )
前面没有反斜杠的扩展元字符集对于标准的grep没有特别的含义。
\ ? , \ + ,\{ , \ | ,\(, \ )
Gnu grep 的使用格式参见表、
Gnu grep
格式 | 含义 |
grep 'patten' filename(s) grep -G 'pattern' filename(s) grep -E 'pattern' filebname(s) grep -F 'pattern' filename(s) |
基本正则表达式元字符(默认) 同上 (默认) 扩展正则表达式元字符集 无正则表达式元字符集 |
表3.2 grep 的正则表达式元字符(基本集)
元字符 | 功能 | 例子 | 匹配什么 |
^ | 锚定行的开始 | ^love | 匹配所有以love开头的行 |
$ | 锚定行的结束 | love$ | 匹配所有以love线束的行 |
. | 匹配一个字符 | l..e | 匹配所有这样的行,这些行包含这样的字符,第一个字符是l,紧跟着两个字符,然后是e |
* | 代表0个或者多个先前字符 | *love | 匹配所有这样的行,有0个或者多个空格,空格后面跟着love |
[] | 匹配字符组中的一个字符 | [LI]ove | 匹配所有包含love或者love的行 |
[^] | 匹配一个不在范围内的字符 | [^A-Z]ove | 匹配所有这样的行,这些行包含如下的字符,第一个字符不是从A~Z中间的一个,后面跟着ove |
/<a | 锚定单词的开始 | /<love | 匹配所有这样的行,这些行包含以love开头的单词(vi和grep支持这个功能); |
\> | 锚定单词的结束 | love\> | 匹配所有这样的行,这些行包含以love结束的单词(vi和grep支持这个功能) |
\(.\)b | 标记后面用到的匹配字符 | \(love\)able | 最多可以使用9个标签,第一个标签是模板最左边的部分。在本例子中,模板love保存为标签l,后面的\l指的就是Love;本例子搜索的是这样的行,这些行包含这样的字符,在Loveable后面跟着lovers |
x\{m\} | m次复制字符x | o\{5,10\} | 匹配所有这样的行,包含的o的数量在5-10 个之间,(vi和grep支持这个功能) |
x\(m\) | 至少m次复制字符x | o\{5,\} | |
x\{m,n\}c | 至少m次,至多n次复制字符x | o\{5,10\} | |
\w | 文字和数字字符,[A-Za-z0-9] | L\w*e | 匹配一个l字符,紧跟着0个或者多个文字或数字字符,然后是e |
\W | 同上 | love\W+ | 匹配love后面是一个或者多个非单词字符,如点号或者问号 |
\b | 单词分界线 | \blove\b | 仅仅匹配单词love |
a.这些元字符必须与反斜线一起才能工作,在grep-E和Gnu egrep中也是这样;他们在UNIX下的egrep中完全不能用。
b.这些元字符是扩展集的一部分,它们可以在UNIX下的grep和Gnu的常规grep下正常工作。如果加反斜线,在UNIX下的egrep中就不能正常工作。
c.该元字符不能被所有版本的UNIX和模板匹配实用程序支持:它们通常在vi或grep下工作,它们根本不能在UNIX的egrep下工作。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~