关于正则表达式里的“+”和“-”二个选项
- maonx
- 帖子: 206
- 注册时间: 2008-09-09 16:39
- 联系:
关于正则表达式里的“+”和“-”二个选项
下面的实例,但我照它的输入,出不来结果,就是说“+,-"二个号我用在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.
**************************
实例:
问号
另一个重复操作符是问号 (?)。问号的功能与星号类似,只不过搜索项可以出现零次或一次。
多个实例将不匹配。使用问号取代星号来尝试您刚才执行的搜索:
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.
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
Re: 关于正则表达式里的“+”和“-”二个选项
我记得在sed里面要用\+,你试试看。
- goodluck1982
- 帖子: 171
- 注册时间: 2007-07-05 2:48
Re: 关于正则表达式里的“+”和“-”二个选项
要知道, sed, awk, grep, vim, emacs, find 等都支持正则表达式
但是
具体的细节是有区别的
象+,?,(,)等有的就需要加\,有的就不需要
很容易弄混的
反正我现在也懒得记了
用之前试一下就行了
但是
具体的细节是有区别的
象+,?,(,)等有的就需要加\,有的就不需要
很容易弄混的
反正我现在也懒得记了
用之前试一下就行了
- HuntXu
- 帖子: 5776
- 注册时间: 2007-09-29 3:09
Re: 关于正则表达式里的“+”和“-”二个选项
grep -E
看图,顺道测试了"*"...额,那个"-"选项正则里表示什么,没见过...
看图,顺道测试了"*"...额,那个"-"选项正则里表示什么,没见过...
HUNT Unfortunately No Talent...
- cnkilior
- 论坛版主
- 帖子: 4984
- 注册时间: 2007-08-05 17:40
Re: 关于正则表达式里的“+”和“-”二个选项
较为详细的正则表达式的讲解是在《sed&awk》奥莱利出版社!
- qqttdh
- 帖子: 896
- 注册时间: 2007-07-20 22:15
- maonx
- 帖子: 206
- 注册时间: 2008-09-09 16:39
- 联系:
Re: 关于正则表达式里的“+”和“-”二个选项
好多代码,
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.
*号的测试结果正常,另外的两个符号的测试结果为空
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.
*号的测试结果正常,另外的两个符号的测试结果为空
- mawith
- 帖子: 1288
- 注册时间: 2007-10-21 16:41
- 来自: GD
- maonx
- 帖子: 206
- 注册时间: 2008-09-09 16:39
- 联系:
Re: 关于正则表达式里的“+”和“-”二个选项
HuntXu 写了:grep -E
看图,顺道测试了"*"...额,那个"-"选项正则里表示什么,没见过...
嗯,测试了,加上 -E 后就成果了,问题解决
grep -E