当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-19 21:55 
头像

注册: 2008-09-09 16:39
帖子: 206
送出感谢: 0 次
接收感谢: 0 次
下面的实例,但我照它的输入,出不来结果,就是说“+,-"二个号我用在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.


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-19 21:58 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
把你的命令和结果完整地发上来


_________________
关注我的blog: ε==3


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-19 22:08 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
我记得在sed里面要用\+,你试试看。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-19 22:44 
头像

注册: 2007-07-05 2:48
帖子: 171
送出感谢: 0 次
接收感谢: 0 次
要知道, sed, awk, grep, vim, emacs, find 等都支持正则表达式
但是
具体的细节是有区别的
象+,?,(,)等有的就需要加\,有的就不需要
很容易弄混的
反正我现在也懒得记了
用之前试一下就行了


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-20 2:35 
头像

注册: 2007-09-29 3:09
帖子: 5773
送出感谢: 0 次
接收感谢: 3
grep -E

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


附件:
2008-10-20-024233_644x412_scrot.png
2008-10-20-024233_644x412_scrot.png [ 167.5 KiB | 被浏览 501 次 ]



_________________
HUNT Unfortunately No Talent...
页首
 用户资料  
 
6 楼 
 文章标题 : Re: 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-20 8:30 
头像

注册: 2007-08-05 17:40
帖子: 4968
送出感谢: 0 次
接收感谢: 4
较为详细的正则表达式的讲解是在《sed&awk》奥莱利出版社!


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-20 10:02 
头像

注册: 2007-07-20 22:15
帖子: 896
送出感谢: 0 次
接收感谢: 0 次
:em26


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-20 23:12 
头像

注册: 2008-09-09 16:39
帖子: 206
送出感谢: 0 次
接收感谢: 0 次
好多代码,
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.

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


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-21 3:18 
头像

注册: 2007-10-21 16:41
帖子: 1289
地址: GD
送出感谢: 0 次
接收感谢: 0 次
太多了。。保存慢慢看


_________________
吼吼


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 关于正则表达式里的“+”和“-”二个选项
帖子发表于 : 2008-10-21 8:53 
头像

注册: 2008-09-09 16:39
帖子: 206
送出感谢: 0 次
接收感谢: 0 次
HuntXu 写道:
grep -E

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




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

grep -E


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译