社区
Java SE
帖子详情
怎样判断两个正则表达式是否包含或者交叉
miaodezhi
2010-05-17 01:55:42
项目中有这么个问题:用户输入的正则表达式不能与数据库中已有的正则表达式出现包含或者交叉关系,但是我对正则表达式之间的包含或者交叉判断不熟悉,也没google出什么名堂,特在此求教于各位大侠,小弟谢过先。
...全文
1143
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)
r语言中
判断
属于回纹元素_文科生R语言问题笔记-如何
判断
两个
字符串有
交叉
内容...
本文介绍了一种在R语言中
判断
两个
字符串
是否
有重复内容的方法,适用于处理大量数据时的文科生。通过将数值变量转化为字符串并运用
正则表达式
与stringr包,实现了对变量间重复内容的有效检测。
在VBA中结合
正则表达式
和查找功能给文档添加
交叉
连接
在文档中搜索文本,利用对象和
正则表达式
各有问题,前者正则功能差,后者无法准确定位匹配项。较好的思路是将二者结合,先用正则查找匹配项,再用对象定位。本文以在文档注释引用和注释编号间建立
交叉
链接为例实践,还给出了建立
交叉
链接的宏代码及无需选择内容建立全文链接的方法。
java如何
判断
数据是文字类型_【工具类】Java中
判断
字符串
是否
为数字的五种方法...
本文介绍了五种在Java中
判断
字符串
是否
为数字的方法,包括使用Java自带函数、
正则表达式
等,并对比了它们的速度和适用场景。
用REGEXP语句实现
判断
两个
字符串组合之间
是否
有交集
本文介绍了一种在TiDB数据库中优化标签匹配的方法,通过
正则表达式
改进了呼叫项目与人员之间的标签关联,确保了即使在标签ID为数字或名称时也能准确匹配。
boost的Linux环境下--ARM
交叉
编译和裁剪
本文介绍了boost库的ARM
交叉
编译和其中
正则表达式
库regex的裁剪方法。基于CentOS Linux release 7.4,先从官网下载源码,在解压目录下进行
交叉
编译,指定生成regex库文件和安装路径。因生成的头文件过多,需进行裁剪,最终得到可直接导入工程使用的裁剪文件。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章