当前位置: 代码迷 >> C# >> 求正则解析,该如何解决
  详细解决方案

求正则解析,该如何解决

热度:40   发布时间:2016-05-05 04:19:00.0
求正则解析
^(A|B)\/(1\d)((0[1-9])|(1[0-2]))\/((0[1-9])|([1|2][0-9])|(3[0-1]))(\/(([\w-])+(\/)?)*)?$

这段正则是什么意思。
------解决思路----------------------
^(A
------解决思路----------------------
B)\/(1\d)((0[1-9])
------解决思路----------------------
(1[0-2]))\/((0[1-9])
------解决思路----------------------
([1
------解决思路----------------------
2][0-9])
------解决思路----------------------
(3[0-1]))(\/(([\w-])+(\/)?)*)?$
必需要A或B开头之后跟着一个\之后再1位1之后0-9的1位数之后。。。。好多写不下,不写了。
------解决思路----------------------
以A或B开头跟一个斜杠

((0[1-9])
------解决思路----------------------
(1[0-2]))\/  0后跟1-9的其中一个或者1后跟0-2其中一个,最后是一个斜杠

后面类似,就是判断一个字符串的规则

------解决思路----------------------
^(A
------解决思路----------------------
B)\/(1\d)((0[1-9])
------解决思路----------------------
(1[0-2]))\/((0[1-9])
------解决思路----------------------
([1
------解决思路----------------------
2][0-9])
------解决思路----------------------
(3[0-1]))(\/(([\w-])+(\/)?)*)?$
^起始符
(A
------解决思路----------------------
B) 匹配A或者B
\/  匹配/
(1\d) 匹配10到19
(0[1-9]),(1[0-2])与上面类似
\/ 匹配/
((0[1-9])
------解决思路----------------------
([1
------解决思路----------------------
2][0-9])
------解决思路----------------------
(3[0-1])) 参考上面
(\/)?  匹配/ 
([\w-])+ 匹配数字、字母、中划线、下划线 1到无穷个
(\/)?  匹配一个或0个/
(([\w-])+(\/)?)* 匹配0次到无穷次
(\/(([\w-])+(\/)?)*)? 匹配0次货1次
$结束符
  相关解决方案