cpper编程论坛
>
技术杂烩
表示“不含某个字符串”的正则表达式
用户名
记住信息
密码
注册账号
论坛帮助
会员列表
日历事件
搜索
今日新帖
标记版面已读
技术杂烩
找不到地方的技术问题?这里!
LinkBack
主题工具
显示模式
#
1
(
permalink
)
2008-09-22
bankrock
高级会员
注册日期: 2003-12-11
帖子: 847
文章:
7
表示“不含某个字符串”的正则表达式
表示不含某个字符的正则表达式很简单,问题是如何在正则表达式中表示“不含有某个字符串”。
比如一种可能的表示不含ab的正则表达式如下:
引用:
([^a]|a[^b])*
这个正则表达式无法判定b前含有偶数个a的字符串(如aaaab)。改为
引用:
([^a]|a*[^b])*
可以解决上述问题。但是表示其他字符串,如“不含abc"或者不含"aabb"的字符串,的方法可能更加复杂。例如这个查找C/C++的注释语句的正则表达式(
Finding Comments in Source Code Using Regular Expressions
对于这类问题有没有通用的解法?
#
2
(
permalink
)
2008-09-23
cat
高级会员
注册日期: 2003-11-06
帖子: 1,563
文章:
6
回复: 表示“不含某个字符串”的正则表达式
这个是不是超过了正则语言的表述范围了啊??
不过话说当今能用得正则表达式库早就超过正则语言了……
#
3
(
permalink
)
2008-09-24
bankrock
高级会员
注册日期: 2003-12-11
帖子: 847
文章:
7
回复: 表示“不含某个字符串”的正则表达式
Dragonbook上也有这种问题,C/C++编译器做Lexical analysis时也会碰到这类问题吧,有经验的来说说。
#
4
(
permalink
)
2008-10-09
liuxinyu
高级会员
注册日期: 2006-02-09
帖子: 311
文章:
49
回复: 表示“不含某个字符串”的正则表达式
我个人的意见是不用正则表达式,而用状态机扫描。反而简单
lexer/parser不就是这么干的么?
#
5
(
permalink
)
2008-11-28
GENESIS
初级会员
注册日期: 2008-08-06
帖子: 9
回复: 表示“不含某个字符串”的正则表达式
呵呵 怎么看怎么像SQL语句
#
6
(
permalink
)
2008-12-04
bankrock
高级会员
注册日期: 2003-12-11
帖子: 847
文章:
7
回复: 表示“不含某个字符串”的正则表达式
引用:
作者:
liuxinyu
我个人的意见是不用正则表达式,而用状态机扫描。反而简单
lexer/parser不就是这么干的么?
这个应该做不到吧,lexer处理Not的方法是将所有不属于集合的代表都列举出来,如果是>1的字符串的话这可是指数增长的。状态机一般也没有表示非某个值得方法。
书签
Digg
del.icio.us
StumbleUpon
Google
百度搜藏
QQ 书签
雅虎收藏
«
关于构造函数的疑问
|
关于离散数学
»
主题工具
显示可打印版本
邮寄本页给好友
显示模式
平板模式
切换到混合模式
切换到树形模式
发帖规则
您
不可以
发表新主题
您
不可以
发表回复
您
不可以
上传附件
您
不可以
编辑自己的帖子
启用
BB 代码
论坛
启用
表情符号
论坛
启用
[IMG] 代码
论坛
禁用
HTML 代码
Trackbacks
are
启用
Pingbacks
are
启用
Refbacks
are
启用
所有时间均为
格林尼治时间 +9
。现在的时间是
09:49 AM
。
-- 简体中文
-- 繁體中文
联系我们
-
http://www.cpper.com
-
返回顶端
Powered by vBulletin® 版本 3.7.0
版权所有 ©2000 - 2009,Jelsoft Enterprises Ltd.
(C) Copy Right All Right Reserved 2001 - 2007
LinkBack
LinkBack URL
About LinkBacks
Bookmark & Share
Digg this Thread!
Add Thread to del.icio.us
Bookmark in Technorati
Furl this Thread!
Search Engine Friendly URLs by
vBSEO
3.1.0