返回   cpper编程论坛 > 技术杂烩
注册账号 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记版面已读

技术杂烩 找不到地方的技术问题?这里!

回复
 
LinkBack 主题工具 显示模式
  #1 (permalink)  
旧 2008-09-22
bankrock 的头像
高级会员
 
注册日期: 2003-12-11
帖子: 847
文章: 7
bankrock 正向着好的方向发展
默认 表示“不含某个字符串”的正则表达式

表示不含某个字符的正则表达式很简单,问题是如何在正则表达式中表示“不含有某个字符串”。
比如一种可能的表示不含ab的正则表达式如下:
引用:
([^a]|a[^b])*
这个正则表达式无法判定b前含有偶数个a的字符串(如aaaab)。改为
引用:
([^a]|a*[^b])*
可以解决上述问题。但是表示其他字符串,如“不含abc"或者不含"aabb"的字符串,的方法可能更加复杂。例如这个查找C/C++的注释语句的正则表达式(Finding Comments in Source Code Using Regular Expressions
对于这类问题有没有通用的解法?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #2 (permalink)  
旧 2008-09-23
cat cat 当前离线
高级会员
 
注册日期: 2003-11-06
帖子: 1,563
文章: 6
cat 正向着好的方向发展
默认 回复: 表示“不含某个字符串”的正则表达式

这个是不是超过了正则语言的表述范围了啊??
不过话说当今能用得正则表达式库早就超过正则语言了……
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #3 (permalink)  
旧 2008-09-24
bankrock 的头像
高级会员
 
注册日期: 2003-12-11
帖子: 847
文章: 7
bankrock 正向着好的方向发展
默认 回复: 表示“不含某个字符串”的正则表达式

Dragonbook上也有这种问题,C/C++编译器做Lexical analysis时也会碰到这类问题吧,有经验的来说说。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #4 (permalink)  
旧 2008-10-09
liuxinyu 的头像
高级会员
 
注册日期: 2006-02-09
帖子: 311
文章: 49
liuxinyu 正向着好的方向发展
默认 回复: 表示“不含某个字符串”的正则表达式

我个人的意见是不用正则表达式,而用状态机扫描。反而简单
lexer/parser不就是这么干的么?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #5 (permalink)  
旧 2008-11-28
GENESIS 的头像
初级会员
 
注册日期: 2008-08-06
帖子: 9
GENESIS 正向着好的方向发展
微笑 回复: 表示“不含某个字符串”的正则表达式

呵呵 怎么看怎么像SQL语句
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #6 (permalink)  
旧 2008-12-04
bankrock 的头像
高级会员
 
注册日期: 2003-12-11
帖子: 847
文章: 7
bankrock 正向着好的方向发展
默认 回复: 表示“不含某个字符串”的正则表达式

引用:
作者: liuxinyu 查看帖子
我个人的意见是不用正则表达式,而用状态机扫描。反而简单
lexer/parser不就是这么干的么?
这个应该做不到吧,lexer处理Not的方法是将所有不属于集合的代表都列举出来,如果是>1的字符串的话这可是指数增长的。状态机一般也没有表示非某个值得方法。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为格林尼治时间 +9。现在的时间是 09:49 AM


Powered by vBulletin® 版本 3.7.0
版权所有 ©2000 - 2009,Jelsoft Enterprises Ltd.
(C) Copy Right All Right Reserved 2001 - 2007

Search Engine Friendly URLs by vBSEO 3.1.0