下面是各地机构代码
BJS/SZA/BGS
BJS/SZA/ZZSYDW/BGS
BJS/AAA/SZB/BGS
BJS/HHH/ABC/SZB/ABC/BGS
CHINA/BJS//ABC/SZB/ABC/BGS
BJSDW/BJS/AAA/SZB/BGS
BJSDW/SWJG/BMGLJG
BJSDW/SWJG/YZFHSBGJG
BJSDW/SWJG/GKDWJQTGLJG
上面是组织机构的代码,
写一个正则,查询出所有符合的记录,顺序不能乱,可以越级查询
查询 BJS 机构 下 SZ* 下 BG*
BJS SZ* BG*
是什么意思没看明白,你把要怎么查,查出来的结果应该是哪样的详细点描述一下吧。
比如,查询 BJS 机构 下 SZ* 下 BG*
BJS SZ* BG*
我想查询 北京市 下所有 SZ 开头的机构,下 所有 BG 开头的机构
@etyoung:你看下这个是不是能满足你的需求。
BJS/[\w\W]*?/SZ[\w\W]*?/(?<city>BG\w*)
组city里就是你要查的机构。
@LCM: 他要能越级的,比如 BJS/SZA/AAA/CCCC/BGA 也是要查到的。
@水牛刀刀: 用这个可以越级查询。
BJS/(\w*?/+)*SZ\w*/(\w*?/+)*BG\w*
@etyoung: 用这个应该可以。
BJS/(\w*?/+)*SZ\w*/(\w*?/+)*(?<city>BG\w*)
@etyoung: 再加了一点点,防止把ABBJS当成BJS查询出来,
(^|\s|/)BJS/(\w*?/+)*SZ\w*/(\w*?/+)*(?<city>BG\w*)
这不是正则做的事情。你应该先把这些分析成组织机构(树形)结构图,然后再用代码去分析(即所谓的业务逻辑)。否则:(1)有的逻辑正则写不出来(2)正则写出来了,下次有变动就会死人。
老板要求能模糊查询,结构图会死人的。
@etyoung: 写代码就不能模糊查询了?写代码比正则灵活多了好么。。。
@水牛刀刀:
代码模糊匹配太痛苦了。
建议把测试代码写出来,这样大家可以通过测试代码准确理解你要解决的问题。
/?\bBJS\b(/[A-Z/]*?|[A-Z/]*?/)(?<SZJiGou>\bSZ[A-Z]*?\b)/?[\w]*?/(?<BGJiGou>\bBG[^/\s]*?\b)
看看符合你的要求不。我用你给的那几个数据,都能匹配的上。
自己搞定啦。
(.*?)BJ(.*?)/+SZ(.*?)/+BG(.*?)