【讨论】能否写一个正则表达式来匹配不包含 linuxeden 的字符串

【讨论】能否写一个正则表达式来匹配不包含 linuxeden 的字符串

有一个文本文件 A, 要从 A 中找出所有不包含 `linuxeden' 的行可以用下面的方法:
grep -v linuxeden A
如果不用 grep 的 -v 选项, 这个正则表达式该如何写呢?      
这意思是用grep且不用-v吗
其它工具可以不      
[QUOTE=li-jiahuan;570839]这意思是用grep且不用-v吗
其它工具可以不[/QUOTE]
跟具体工具无关,简言之就是要写出一个 regular expression 来匹配不包含 linuxeden 的字符串      
我怀疑所谓的不匹配(也就是grep -v)都是类似以下的方法实现
复制内容到剪贴板
代码:
[0 No.2034 huan@huan ~/tmp]$ cat jj
eden
sir
fans

[0 No.2035 huan@huan ~/tmp]$ perl -ne ' print unless /eden/ ' jj
sir
fans

[0 No.2036 huan@huan ~/tmp]$
所以dearvoid要求的‘不匹配的正则’不存在      
[QUOTE=li-jiahuan;570922]
所以dearvoid要求的‘不匹配的正则’不存在[/QUOTE]
再加个限制条件:是否存在一个 RE 能匹配不以 `linuxeden' 开头的字符串呢?      
Perl的扩展正则里正好有这个实现
复制内容到剪贴板
代码:
[0 No.533 huanlf@huanlf ~/tmp]$ cat txt
eden
sir
fans
cu

[0 No.534 huanlf@huanlf ~/tmp]$ perl -lne ' print if /^(?!eden)/ ' txt
sir
fans
cu

[0 No.535 huanlf@huanlf ~/tmp]$
见 http://www.pgsqldb.org/bin/view/Perl/PatternMatching
“扩展的正则序列”部分      
来个简单点儿的, 看这个 RE 能否匹配不含 ab 的字符串:
复制内容到剪贴板
代码:
^[^a]*(a[^b]*|[^a]*b)[^b]*$
      
我觉得这种思路不可行
[^X]这种方式几乎需要穷举所有语言文字
这是不可能的
复制内容到剪贴板
代码:
[1 No.515 huanlf@huanlf ~/tmp]$ cat txt
ab
你好
,
123
()
[]
%41234

[0 No.516 huanlf@huanlf ~/tmp]$ egrep '^[^a]*(a[^b]*|[^a]*b)[^b]*$' txt

[1 No.517 huanlf@huanlf ~/tmp]$
      
放弃了       
http://bbs.chinaunix.net/viewthread.php?tid=904703
类似的问题
4楼有个很好的说明,呵