社区
Java SE
帖子详情
怎样判断两个正则表达式是否包含或者交叉
miaodezhi
2010-05-17 01:55:42
项目中有这么个问题:用户输入的正则表达式不能与数据库中已有的正则表达式出现包含或者交叉关系,但是我对正则表达式之间的包含或者交叉判断不熟悉,也没google出什么名堂,特在此求教于各位大侠,小弟谢过先。
...全文
1121
36
打赏
收藏
怎样判断两个正则表达式是否包含或者交叉
项目中有这么个问题:用户输入的正则表达式不能与数据库中已有的正则表达式出现包含或者交叉关系,但是我对正则表达式之间的包含或者交叉判断不熟悉,也没google出什么名堂,特在此求教于各位大侠,小弟谢过先。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
36 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoyang_ytc
2011-09-09
打赏
举报
回复
楼主,这个问题解决了吗,我也遇到了
miaodezhi
2010-05-19
打赏
举报
回复
哎 各位大侠言之有理啊 确实比较纠结 找俺经理讨论讨论得了
hollowinheart
2010-05-19
打赏
举报
回复
纠结!
火龙果被占用了
2010-05-19
打赏
举报
回复
楼主,这个功能几乎是不可能完成的。
这个功能比你整个系统的实现还要复杂!
werosh
2010-05-19
打赏
举报
回复
不让交叉重复是为了解决什么问题,现在这条路肯定不通了,换个思路看问题吧。
werosh
2010-05-19
打赏
举报
回复
主要就是为什么不让交叉重复,数据就放那,交叉重复也没问题啊
miaodezhi
2010-05-19
打赏
举报
回复
[Quote=引用 29 楼 werosh 的回复:]
如果重复和交叉又怎么样了?多人用同一个数据?数据只让匹配一次?一个用户不只有一条正则?
[/Quote]
不允许重复和交叉 一个人对应一堆数据 一个用户是不只有一条匹配记录的 也就是一个用户可能对应多条正则
werosh
2010-05-19
打赏
举报
回复
如果重复和交叉又怎么样了?多人用同一个数据?数据只让匹配一次?一个用户不只有一条正则?
miaodezhi
2010-05-19
打赏
举报
回复
[Quote=引用 26 楼 werosh 的回复:]
最好能将需求和关联说说,就像给你一根钨丝,让你点亮它,根本无处下手,如果说这根钨丝是在灯泡里,那给灯泡通电不就亮了。
[/Quote]
需求分为两块 业务和管理 我做管理 业务根据输入的正则匹配用户数据 所以我必须保证管理后台输入正则时不能重复和交叉(当然这里还有用户id作为联合判断),如果与数据库中已有正则出现重复和交叉,则需要提示不能输入。
miaodezhi
2010-05-19
打赏
举报
回复
[Quote=引用 25 楼 werosh 的回复:]
或许你可以吧这些包含比较大的匹配符去掉?那就失去正则的意义了,也许精简到最后,就是字符串比较了。就算是字符串,比较交叉都很难实现了,更别说正则了。你最好再分析下需求吧,如果没指定用正则,就换思路了吧。正则这东西,开发人员都有好多不熟悉,用户再高级也很难熟悉这东西吧。再说了,要是让用户输入,为什么还要限制呢?想用的正则都输不进去,这功能不是给人添堵吗。。。。。。
[/Quote]
呵呵 你说的有道理 可是没法 需求确实是这样子的
werosh
2010-05-19
打赏
举报
回复
最好能将需求和关联说说,就像给你一根钨丝,让你点亮它,根本无处下手,如果说这根钨丝是在灯泡里,那给灯泡通电不就亮了。
werosh
2010-05-19
打赏
举报
回复
或许你可以吧这些包含比较大的匹配符去掉?那就失去正则的意义了,也许精简到最后,就是字符串比较了。就算是字符串,比较交叉都很难实现了,更别说正则了。你最好再分析下需求吧,如果没指定用正则,就换思路了吧。正则这东西,开发人员都有好多不熟悉,用户再高级也很难熟悉这东西吧。再说了,要是让用户输入,为什么还要限制呢?想用的正则都输不进去,这功能不是给人添堵吗。。。。。。
miaodezhi
2010-05-19
打赏
举报
回复
[Quote=引用 23 楼 werosh 的回复:]
这个实在太难了,就算你实现了,用户写不了几个,就会把输入全封掉了,就像\S,非空字符,什么都包含进去了,出现一个,那别人就再也别用这个功能了,全封掉了
[/Quote]
这个没关系,因为还有其他字段作为关联判断。况且这个功能不会开放给大量的用户,只是管理员使用
werosh
2010-05-19
打赏
举报
回复
这个实在太难了,就算你实现了,用户写不了几个,就会把输入全封掉了,就像\S,非空字符,什么都包含进去了,出现一个,那别人就再也别用这个功能了,全封掉了
miaodezhi
2010-05-19
打赏
举报
回复
[Quote=引用 21 楼 bao110908 的回复:]
我感觉这个需求就有问题。怎么会让用户在页面上输入正则表达式呢?你确定用户能理解正则表达式?
说实在的,不要说让普通用户去填写正则表达式了,这事就算对开发人员来说也是件很麻烦的事情。
正则表达式的应用在国内并不普及,抄来抄去就是网上的那几个,离真正的正则表达式应用还有一大段的距离。
[/Quote]
哦 但是需求确实是这样的 因为我们的系统是面向一些比较高级的用户
smi_ling
2010-05-18
打赏
举报
回复
ding...
火龙果被占用了
2010-05-18
打赏
举报
回复
做这个比要写一个正则表达式引擎还要复杂!
火龙果被占用了
2010-05-18
打赏
举报
回复
[Quote=引用 10 楼 miaodezhi 的回复:]
那行 我就举个例子吧:
例如
数据库中存在 ^[0-9]*$ 这个正则, 则 用户输入 ^\d*$ 就不行,因为重复了,同时也不能输入^[0-37-8]$因为被包含了,当然也不可以输入^[0-9]*\S+$,因为这样被交叉了。
[/Quote]
这需要进行语义和语法分析,以我的水平,无能为力。
xiesisi3
2010-05-18
打赏
举报
回复
学习.火龙果大哥加油
miaodezhi
2010-05-18
打赏
举报
回复
[Quote=引用 9 楼 bao110908 的回复:]
如果问正则表达式的话,请在提问时达到下面最为基本的要求:
1,正则表达式是一种模式匹配,是根据字符串的规律来操作的,因此需要详细说明具体要做些什么;
2,对于查找的问题,详细说明寻找字符串的特征是什么,这些字符串的边界是什么,或者说有些什么规律;
3,对于替换的问题,详细说明原串是什么,替换后是什么,有些什么规律;
4,对于验证的问题,详细说明验证的格式是什么;
5,举两三个覆盖范围……
[/Quote]
那行 我就举个例子吧:
例如
数据库中存在 ^[0-9]*$ 这个正则, 则 用户输入 ^\d*$ 就不行,因为重复了,同时也不能输入^[0-37-8]$因为被包含了,当然也不可以输入^[0-9]*\S+$,因为这样被交叉了。
加载更多回复(16)
From Regular Expressions to DFA's Using Compressed NFA's
国外关于
正则表达式
到NFA转化的论文 From Regular Expressions to DFA's Using Compressed NFA's
素数判定与线性方程求解
今天又学到一个牛B东西。你相信吗?
正则表达式
竟然可以用来判定素数,甚至可以用来解方程!下面这段
正则表达式
可以用来
判断
,一个字符串的长度
是否
为合数(假设这个字符串里全是字符'1'):
正则模板演化项目-目标说明1
正则模板演化项目——目标说明目标此正则模板演化项目旨在为交通信息短文本分类提供一种可动态演化的
正则表达式
匹配模板。数据数据
包含
4类样本,分别标记为1,2,3,4
RapidMiner基础培训第2部分_讲义.pdf
1、业务场景。 2、数据理解。 3、数据预处理。 4、数据分析建模。 5、数据降维。 6、更多介绍。
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章