同理,当我们需要『至少两个
o
以上的字符串』时,就需要
ooo*
,亦即是:
[dmtsai@study ~]$
grep
-
n 'ooo*' regular_express.txt
1:"Open Source" is a g
oo
d mechanism to develop programs.
2:apple is my favorite f
oo
d.
3:F
oo
tball game is not use feet only.
9:Oh! The soup taste g
oo
d.
18:g
oo
gle is the best t
oo
ls
for search keyword.
19:g
oooooo
gle yes!
这样理½
*
的意义了吗?好了,现在出个练习,如果我想要字符串开头与½尾都是
g
,但是两个
g
之
间½能存在至少一个
o
,亦即是
gog, goog, gooog....
等等,那该如何?
[dmtsai@study ~]$
grep
-
n 'goo*g' regular_express.txt
18:
goog
le is the best tools for search keyword.
19:
goooooog
le yes!
如此了½了吗?再来一题,如果我想要找出
g
开头与
g
½尾的字符串,当中的字符可有可无,那该
如何是好?是『
g*g
』吗?
[dmtsai@study ~]$
grep
-
n 'g*g' regular_express.txt
1:"Open Source" is a
g
ood mechanism to develop pro
g
rams.
3:Football
g
ame is not use feet only.
9:Oh! The soup taste
g
ood.
13:Oh! My
g
od!
14:The
g
d software is a library for draftin
g
pro
g
rams.
16:The world <Happy> is the same with "
g
lad".
17:I like do
g
.
18:
g
oo
g
le is the best tools for search keyword.
19:
g
oooooo
g
le yes!
20:
g
o!
g
o! Let's
g
o.
但测试的½果竟然出现这么多行?太诡异了吧?其实一点也不诡异,因为
g*g
里面的
g*
代表『空
字符或一个以上的
g
』
在加上后面的
g
,因此,整个
RE
的内容就是
g, gg, ggg, gggg
,
因此,
只要该行当中拥有一个以上的
g
就符合所需了!
那该如何得到我们的
g....g
的需求呢?呵呵!就利用任意一个字符『
.
』啊!
亦即是:『
g.*g
』的作
法,因为
*
可以是
0
或多个重复前面的字符,而
.
是任意字符,所以:
『
.*
就代表零个或多个任
意字符
』的意思啦!
[dmtsai@study ~]$
grep
-
n 'g.*g' regular_express.txt
1:"Open Source" is a
good mechanism to develop prog
rams.
14:The
gd software is a library for drafting prog
rams.