grep的基本正则表达式及扩展表达式

前端之家收集整理的这篇文章主要介绍了grep的基本正则表达式及扩展表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

grep 全名为 全面搜索正则表达式并把行打印出来(global search regular expression)

grep搜索以 FILE 命名的文件输入 (或者是标准输入,如果没有指定文件名,或者给出的文件名是 - 的话),寻找含有与给定的模式 PATTERN(正则表达式) 相匹配的内容的行。默认情况下, grep 将把含有匹配内容的行打印出来。

另外,也可以使用两个变种程序 egrep 和 fgrep 。 Egrep 与 grep -E 相同。 Fgrep 与 grep -F 相同


grep的用法: 命令参数详解参考

grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

grep与egrep的常用选项(OPTIONS):

演示文本

aaat
bbb
ttt
BBB

-i:忽略大小写

image

-o:显示匹配到的内容

image

-v:反向选取

image

-A #:匹配到的行的下#行

image

-B #:匹配到的行的上#行

image

-C #:匹配到行的上下各#行

image

--color=auto:匹配的显示颜色

image

-n:显示行号

image


grep与egrep的模式(PATTERN):

image

字符匹配

演示文本

gd

god

good

goood

gooood

grep演示

. :可以匹任意单个单词

wKiom1RnAPDQ5Q5lAAAxtNygo9A989.jpg

集合相关

示文本

abc123 %^#ABC

grep演示

匹配到集合中的相关内容

wKioL1Rn9gTB8MI9AAE_eth5Fdc290.jpg

wKiom1Rn9ZLiQjUvAAArHPXFKvg441.jpg

egrep演示

wKiom1Rn9eCyp3QqAAAzall47Pk914.jpg

次数匹配

演示文本

gd

god

good

goood

gooood

\?:匹配前面的字符0次或1次

wKioL1RnAWTgjfCoAAApaEt2rZo892.jpg

\{m\}: 匹配其前面的字符m次;

wKiom1RnAPST4YkXAAApzfU1Ydc567.jpg

\{m,n\}:匹配其前面的字符至少m次,至多n次;

wKiom1RnAPWhLM9oAAAw44ddd5E397.jpg

wKioL1RnAWaBKtYVAAA0RXKrxtY064.jpg

\+:匹配前面的字符至少1次 与\{1,\}效果一样

wKiom1RnAPXzfkUmAAAxgOsBbt8765.jpg

.*:匹配任意长度的任意字符,连空格行也匹配出来了

wKioL1RnAWfDmSHWAAA3CuaTma4731.jpg

egrep演示

wKioL1Rn9TWTOr8aAAERRaZauSQ111.jpg

位置锚定

abc:1abc

1abc:abc1

^: 行首锚定

wKioL1Rn97iQNZlHAAAruUCqD7c022.jpg

wKiom1Rn90bwa2QCAAAnxKZPviw573.jpg

$: 行尾锚定

wKiom1Rn992Dn9OsAABUVqi8zQ4698.jpg

^$: 空白行

wKioL1Rn97jzZmneAAAenUt1Ne0790.jpg

\<: 词首锚定,\b

wKiom1Rn90byVk_uAABaYsN1ZxI198.jpg

\>:词尾锚定,\b

wKioL1Rn97nyYjxCAABc4v_lUhY370.jpg

\<pattern\>匹配单词

wKioL1Rn97mSdMl3AABQM_cHM5U062.jpg

egrep演示

wKioL1Rn_I6DsVzvAAAvVB38F6k151.jpg

通过一下演示可以表明词首或词尾锚定只能锚定数字和字母,字母和数字连在一起相当于一个单词

wKioL1Rop-ygI3lFAAFTgaAKtlg589.jpg

分组,或

qqgodrrrgoogle

dddgooglerrrgod

godee

googlerrrgod

grep演示

加和不加分组括号没什么区别

wKioL1Rn_gKC48aqAACq7_YQeaI916.jpg

加完后前面再加一个"^",只能显示行首锚定的god和google

wKiom1Rn_ZDDgMg-AAA6rB_6Rcs377.jpg

不加分组括号,只能显示行首锚定god的和所有行有google的

wKioL1Rn_gOQ-BfrAABY6_wr0wY741.jpg

egrep演示

wKiom1Rn_fHQoEq_AABNhjA7Lzs314.jpg

后向引用 \1,\2,\3:

模式自左而右,后向引用:模式中,如果使用\(\)实现了分组,在某行文本的检查中,如果\(\)的模式匹配到了某内容,此内容后面的模式中可以被引用;引用第#个左括号以及与其匹配右括号之间的模式匹配到的内容

演示文本:go! go! Let's go.

grep演示

如不加括号,提示无效的向后引用

wKioL1Rn_1uy6fSYAAAsOKhKEDY835.jpg

加括号后能正确匹配

wKioL1Rn__CDAnZ1AAAyKjQZ0Ko913.jpg

把匹配范围缩小到g后的10个字符内

wKiom1Rn_umAZrkAAAA3dzLb6OM629.jpg

向后引用o这个单词

wKioL1Rn_1vDIWTTAADQxB-czY4482.jpg

egrep演示

只要把"\"去掉

wKiom1Rn_umzRMbqAAApWd4sJBE296.jpg

原文链接:https://www.f2er.com/regex/361057.html

猜你在找的正则表达式相关文章