We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
正则表达式一般分为两个部分:元字符(特殊字符)+ 普通字符
/^/:表示文本的开头,将表达式“锚定”在一行的开头。 /$/:表示一行的结尾。 /^cat/:表示的是以c作为一行的开头,接着是a,紧接着是c的文本。
/^/
/$/
/^cat/
eg: /^$/:文字意义匹配的是行开头,然后就是末尾。应用意义是表示空行(没有任何字符,包括字符)。 /^/:文字意义匹配的条件是行的开头。应用意义:没有意义!(因为每一行都有开头,每一行都有匹配)
/^$/
eg:/[A-Z]/:表示的是大写的A到Z的任意字符。
/[A-Z]/
/[^...]/代替[...]表示的是这个字符组匹配任何未列出的字符。这个字符组开头的/^/表示的是不希望匹配的字符。
/[^...]/
[...]
在字符组外行部,表示的是一个行锚点,代表一行的开头。但是在字符组内部(并且只能跟在字符组第一个方括号后),他就是一个元字符
/./
eg:/91.1.1/:可以匹配91-1-1、91/1/1、91,1,1等等许多种情况。其中的.只是一个占位符而已。
/91.1.1/
.
|
可以把不同的子表达式用一个总的表达式来表达。总的表达式又可以匹配任意的子表达式。 eg:grey和gray可以匹配的正则表达式有:/grey|gray/或者/gr(a|e)y/。
/grey|gray/
/gr(a|e)y/
对/gr(a|e)y/补充说明: 1.用括号划定多选结构的范围,正常情况下,括号也是元字符。 2.但/gr[a|e]y/是不符合我们的要求的,在字符组[ ]内部,| 是跟a、e一样的普通字符而已。 3./gr(a|e)y/的括号是必须的。如果去掉括号便成了/gra|ey/这样只会匹配到,gra或者er字符串。很明显,这个跟我们预期的想象不符合。 多选结构可以表达很多字符,但是不能超越括号的界限
/gr[a|e]y/
/gra|ey/
命令行参数 -i 可以表示忽略大小写匹配。记得要将-写在正则表达式之前。
元字符序列(/\</ /\>/)就可以用来匹配单词分界的位置。 以刚开始cat的例子为例:/\<cat/可以表示以cat开头的单词。/cat\>/表示cat结尾的单词。 <和>并不是元字符,当他们与\连用的时候,整个序列才有特殊意义,这边是元字符序列名称的由来 并不是所有的egrep都可以识别单词分界符~~
/\</
/\>/
/\<cat/
/cat\>/
<
>
\
元字符?代表的是可选项。把他加在一个字符的后面代表此处容许出现这个字符,不过他的出现并非匹配成功的必要条件。
?
eg: color和colour的匹配可以用colou?r来匹配。u?这个元字符只作用于之前紧邻的元素。 colou?r的意思是c,然后是o,然后是l,然后是o,然后是u?,最后是r。 u?是必然会匹配成功的。有时他会匹配一个u,其他时候不匹配任何字符。
colou?r
u?
c
o
l
r
**元字符+号表示之前紧邻的元素出现一次或者多次。**表示匹配尽可能多次,如果一次匹配都无法完成,就报告失败。 **元字符*表示之前紧邻的元素出现任意多次,或者不出现。**表示匹配尽可能多的次数,如果实在无法匹配,也不打紧。
+
*
** 使用反斜杠称为转义符,它作用的元字符会失去特殊的含义。**
The text was updated successfully, but these errors were encountered:
No branches or pull requests
正则表达式一般分为两个部分:元字符(特殊字符)+ 普通字符
Egrep元字符(Egrep:检索文本文件)
1.行的开始与结束
/^/
:表示文本的开头,将表达式“锚定”在一行的开头。/$/
:表示一行的结尾。/^cat/
:表示的是以c作为一行的开头,接着是a,紧接着是c的文本。eg:
/^$/
:文字意义匹配的是行开头,然后就是末尾。应用意义是表示空行(没有任何字符,包括字符)。/^/
:文字意义匹配的条件是行的开头。应用意义:没有意义!(因为每一行都有开头,每一行都有匹配)2.字符组
字符组元字符连字符-表示的是一个范围。
eg:
/[A-Z]/
:表示的是大写的A到Z的任意字符。排除型字符组
/[^...]/
代替[...]
表示的是这个字符组匹配任何未列出的字符。这个字符组开头的/^/
表示的是不希望匹配的字符。在字符组外行部,表示的是一个行锚点,代表一行的开头。但是在字符组内部(并且只能跟在字符组第一个方括号后),他就是一个元字符
3.用点号匹配任意字符
元字符
/./
是用一个用来“匹配任意字符”的占位符。eg:
/91.1.1/
:可以匹配91-1-1、91/1/1、91,1,1等等许多种情况。其中的.
只是一个占位符而已。4.多选结构
|
(或)可以把不同的子表达式用一个总的表达式来表达。总的表达式又可以匹配任意的子表达式。
eg:grey和gray可以匹配的正则表达式有:
/grey|gray/
或者/gr(a|e)y/
。对
/gr(a|e)y/
补充说明:1.用括号划定多选结构的范围,正常情况下,括号也是元字符。
2.但
/gr[a|e]y/
是不符合我们的要求的,在字符组[ ]内部,| 是跟a、e一样的普通字符而已。3.
/gr(a|e)y/
的括号是必须的。如果去掉括号便成了/gra|ey/
这样只会匹配到,gra或者er字符串。很明显,这个跟我们预期的想象不符合。多选结构可以表达很多字符,但是不能超越括号的界限
5.忽略大小写
命令行参数 -i 可以表示忽略大小写匹配。记得要将-写在正则表达式之前。
6.单词分界符
元字符序列(
/\</
/\>/
)就可以用来匹配单词分界的位置。以刚开始cat的例子为例:
/\<cat/
可以表示以cat开头的单词。/cat\>/
表示cat结尾的单词。<
和>
并不是元字符,当他们与\
连用的时候,整个序列才有特殊意义,这边是元字符序列名称的由来并不是所有的egrep都可以识别单词分界符~~
7.可选项元素
元字符
?
代表的是可选项。把他加在一个字符的后面代表此处容许出现这个字符,不过他的出现并非匹配成功的必要条件。eg: color和colour的匹配可以用
colou?r
来匹配。u?
这个元字符只作用于之前紧邻的元素。colou?r
的意思是c
,然后是o
,然后是l
,然后是o
,然后是u?
,最后是r
。u?
是必然会匹配成功的。有时他会匹配一个u,其他时候不匹配任何字符。8.重复出现
**元字符
+
号表示之前紧邻的元素出现一次或者多次。**表示匹配尽可能多次,如果一次匹配都无法完成,就报告失败。**元字符
*
表示之前紧邻的元素出现任意多次,或者不出现。**表示匹配尽可能多的次数,如果实在无法匹配,也不打紧。9.神奇的转义
** 使用反斜杠称为转义符,它作用的元字符会失去特殊的含义。**
The text was updated successfully, but these errors were encountered: