我试图在xsd文件中使用正则表达式从xml文件中匹配许多不同的东西。
我正在尝试匹配0或* / *并匹配0-9 / 0-9 0-9是任意数字0 - 9示例0/4应匹配,但0 / a应显示非匹配/无效条目。
可能的条目列表。
0
0 / 0
1 / 4
22 / 22
* / *
非允许条目的示例
1 ( no digits other than 0)
1 / a
a
这是我正在使用的正则表达式,但它有一个缺陷。它匹配0很好但它仍然接受0 / a并且它根本不匹配* / *。
^.*\b(0|[0-9]\s\/\s[0-9]|\*\s\/\s\*)\b.*$
答案 0 :(得分:1)
嗯,允许0 / a
的是你正在使用的.*
,其中第一个.*
不匹配,0
将匹配0
,最后一个.*
/ a
将与0
匹配。而且我认为你真的不需要这里的边界。
首先只匹配^0$
:
0-9 / 0-9
然后分支接受^(?:0|[0-9] / [0-9])$
:
09 / 09
如果您想接受多个数字,请添加量词。如果您不想获得[1-9][0-9]*
之类的内容,请改用^(?:0|[1-9][0-9]* / [1-9][0-9]*)$
:
0 / 0
要接受^(?:0|(?:0|[1-9][0-9]*) / (?:0|[1-9][0-9]*))$
,只需将其添加到另一个'或':
*
最后,要接受0
,您可以将^(?:0|(?:[0*]|[1-9][0-9]*) / (?:[0*]|[1-9][0-9]*))$
与字符类放在一起:
{{1}}
答案 1 :(得分:1)