LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1007|回复: 4

请教两个regular expression的问题

[复制链接]
发表于 2007-5-18 21:24:13 | 显示全部楼层 |阅读模式
假设有字符串33.19.76
在egrep中,我可以用([0-9]{2}.){2}[0-9]{2} match这个字符串,但是([0-9]{2}[-./]){2}[0-9]{2}却不行。太奇怪了

如果我想match的字符串中不能出现某个字符串(例如不能出现“the“)。这样的正则表达式该怎么写?[^...]好像只能表示不能出现某字符而不是字符串,不过是用多个[^...]感觉有太麻烦了。
发表于 2007-5-18 22:16:46 | 显示全部楼层
第二个问题grep -v 的参数输出不匹配的行.

至于REGULAR EXPRESSIONS支持不支持匹配没有一个字符串,我一直也想知道.

继续等高手.
回复 支持 反对

使用道具 举报

发表于 2007-5-18 22:36:33 | 显示全部楼层
用.来匹配俄批"."是不对的,要用\转义吧?
第二种是可以的,不知为何你不行
[iveney@localhost Network]$ egrep --version
egrep (GNU grep) 2.5.1

Regular Expression只是个规范吧,具体实现还看各个引擎。
参考另一个帖子:
http://www.linuxsir.cn/bbs/showthread.php?p=1704343#post1704343

// 召唤高手
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-19 02:16:15 | 显示全部楼层
Post by iveney
用.来匹配俄批"."是不对的,要用\转义吧?
第二种是可以的,不知为何你不行
[iveney@localhost Network]$ egrep --version
egrep (GNU grep) 2.5.1


我的也是这个版本阿。
我把33.19.76放在tmp.txt文件中,
运行egrep '([0-9]{2}[-./]){2}[0-9]{2}' tmp.txt
结果什么东西都没有显示出来
回复 支持 反对

使用道具 举报

发表于 2007-5-19 12:44:32 | 显示全部楼层
帮你验证了下,我的是有的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表