正则表达式的归纳(鸟哥)

在学习中总是会忘记正则表达式的写法:所以今天去鸟哥的网站上把这个总结下下来,留着给自己用:

RE字符

意义与范例

^word

意义:待搜寻的字符串(word)在行首!
范例:搜寻行首为#开始的那一行,并列出行号

grep-n'^#'regular_express.txt

word$

意义:待搜寻的字符串(word)在行尾!
范例:将行尾为!的那一行打印出来,并列出行号

grep-n'!$'regular_express.txt

.

意义:代表『一定有一个任意字符』的字符!
范例:搜寻的字符串可以是(eve)(eae)(eee)(ee),但不能仅有(ee)!亦即ee中间『一定』仅有一个字符,而空格符也是字符!

grep-n'e.e'regular_express.txt

\

意义:跳脱字符,将特殊符号的特殊意义去除!
范例:搜寻含有单引号'的那一行!

grep-n\'regular_express.txt

*

意义:重复零个到无穷多个的前一个RE字符
范例:找出含有(es)(ess)(esss)等等的字符串,注意,因为*可以是0个,所以es也是符合带搜寻字符串。另外,因为*为重复『前一个RE字符』的符号,因此,在*之前必须要紧接着一个RE字符喔!例如任意字符则为『.*』!

grep-n'ess*'regular_express.txt

[list]

意义:字符集合的RE字符,里面列出想要撷取的字符!
范例:搜寻含有(gl)(gd)的那一行,需要特别留意的是,在[]当中『谨代表一个待搜寻的字符』,例如『a[afl]y』代表搜寻的字符串可以是aay,afy,aly[afl]代表afl的意思!

grep-n'g[ld]'regular_express.txt

[n1-n2]

意义:字符集合的RE字符,里面列出想要撷取的字符范围!
范例:搜寻含有任意数字的那一行!需特别留意,在字符集合[]中的减号-是有特殊意义的,他代表两个字符之间的所有连续字符!但这个连续与否与ASCII编码有关,因此,你的编码需要设定正确(bash当中,需要确定LANGLANGUAGE的变量是否正确!)例如所有大写字符则为[A-Z]

grep-n'[A-Z]'regular_express.txt

[^list]

意义:字符集合的RE字符,里面列出不要的字符串或范围!
范例:搜寻的字符串可以是(oog)(ood)但不能是(oot),那个^[]内时,代表的意义是『反向选择』的意思。例如,我不要大写字符,则为[^A-Z]。但是,需要特别注意的是,如果以grep-n[^A-Z]regular_express.txt来搜寻,却发现该档案内的所有行都被列出,为什么?因为这个[^A-Z]是『非大写字符』的意思,因为每一行均有非大写字符,例如第一行的"OpenSource"就有p,e,n,o....等等的小写字

grep-n'oo[^t]'regular_express.txt

\{n,m\}

意义:连续nm个的『前一个RE字符』
意义:若为\{n\}则是连续n个的前一个RE字符,
意义:若是\{n,\}则是连续n个以上的前一个RE字符!范例:在gg之间有2个到3个的o存在的字符串,亦即(goog)(gooog)

grep-n'go\{2,3\}g'regular_express.txt


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值