分页: 1 / 1

关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-19 21:55
maonx
下面的实例,但我照它的输入,出不来结果,就是说“+,-"二个号我用在GREP 里面没有效果,“*”是可以的

**************************
实例:
问号
另一个重复操作符是问号 (?)。问号的功能与星号类似,只不过搜索项可以出现零次或一次。
多个实例将不匹配。使用问号取代星号来尝试您刚才执行的搜索:
grep go?lf grep.txt
可以看到,这次作为匹配结果返回了 golf 和 glf,但是没有返回 goolf,
因为其中存在问号前的搜索项 o 的多个实例:
I like golf.
This time the o is missing in glf.
加号
最后一个常规重复操作符是加号 (+)。加号将查找某个搜索项出现一次或多次的情况。
与星号不同,必须至少找到一个实例才会匹配。请尝试以下示例:
grep go+lf grep.txt
这次,该搜索返回 golf 和 goolf,但它不返回 glf,因为没有找到 o:
I like golf.
Some people might say goolf.

Re: 关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-19 21:58
bones7456
把你的命令和结果完整地发上来

Re: 关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-19 22:08
xiooli
我记得在sed里面要用\+,你试试看。

Re: 关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-19 22:44
goodluck1982
要知道, sed, awk, grep, vim, emacs, find 等都支持正则表达式
但是
具体的细节是有区别的
象+,?,(,)等有的就需要加\,有的就不需要
很容易弄混的
反正我现在也懒得记了
用之前试一下就行了

Re: 关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-20 2:35
HuntXu
grep -E

看图,顺道测试了"*"...额,那个"-"选项正则里表示什么,没见过... :em20

Re: 关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-20 8:30
cnkilior
较为详细的正则表达式的讲解是在《sed&awk》奥莱利出版社!

Re: 关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-20 10:02
qqttdh
:em26

Re: 关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-20 23:12
maonx
好多代码,
grep.txt:
I like golf.
Golf is played on grass.
I created gilf.
What is g2lf?
This time the o is missing in glf.
Some people might say goolf.
But they would not say goilf.

然后分别用 * , ?,+号去试
星号

要试验的下一个特殊字符是星号 (*),它是若干个重复操作符之一。大多数人都非常熟悉在命令行上使用星号

作为文件名搜索条件(通配符),但是在正则表达式中使用星号还是相当新鲜的。星号指示搜索项

(前一个字符或方括号表达式)可以出现零次、一次或多次。若要对此进行尝试,请将以下行添加到您已经在使用的 grep.txt 文件:


尝试在 golf 中的 o 后面使用星号:

grep go*lf grep.txt



您的搜索将返回具有单词 golf、glf 和 goolf 的行:

I like golf.
This time the o is missing in glf.
Some people might say goolf.



问号

另一个重复操作符是问号 (?)。问号的功能与星号类似,只不过搜索项可以出现零次或一次。

多个实例将不匹配。使用问号取代星号来尝试您刚才执行的搜索:

grep go?lf grep.txt



可以看到,这次作为匹配结果返回了 golf 和 glf,但是没有返回 goolf,

因为其中存在问号前的搜索项 o 的多个实例:

I like golf.
This time the o is missing in glf.




加号

最后一个常规重复操作符是加号 (+)。加号将查找某个搜索项出现一次或多次的情况。

与星号不同,必须至少找到一个实例才会匹配。请尝试以下示例:

grep go+lf grep.txt



这次,该搜索返回 golf 和 goolf,但它不返回 glf,因为没有找到 o:

I like golf.
Some people might say goolf.

*号的测试结果正常,另外的两个符号的测试结果为空

Re: 关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-21 3:18
mawith
太多了。。保存慢慢看

Re: 关于正则表达式里的“+”和“-”二个选项

发表于 : 2008-10-21 8:53
maonx
HuntXu 写了:grep -E

看图,顺道测试了"*"...额,那个"-"选项正则里表示什么,没见过... :em20


嗯,测试了,加上 -E 后就成果了,问题解决

grep -E