我正在尝试执行以下操作,并尝试找到如何进行适当排除的示例,但我无法完全了解它。
我应该排除数字000,666和900-999之间的所有数字。
这是我对这个问题的尝试,但它并没有包括排除:
String p = "(^[0-9]{3})-([0-9]{2})-([0-9]{4}$)";
这是我尝试排除的尝试,但我不确定如何:
String p = "(^[^666000]{3})-([0-9]{2})-([0-9]{4}$)";
导致了一些比赛:
任何帮助将不胜感激!
答案 0 :(得分:2)
除了000
,666
和900-999
之外的其他任何内容:
[1-578]\d\d|(?:0\d[1-9]|0[1-9]\d)|(?:6\d[0-57-9]|6[0-57-9]\d)
如何运作:
[1-578]\d\d
第一个替代匹配以0
,6
和9
之外的所有数字开头的所有数字,即1xx
,{{ 1}},2xx
等,如此处所示7xx
,基本上代表[1-578]
或1-5
或7
。8
匹配以(?:0\d[1-9]|0[1-9]\d)
开头的所有数字,并确保数字不应所有三个零0
匹配以(?:6\d[0-57-9]|6[0-57-9]\d)
开头的所有数字,并确保数字不应该所有三个六<强>测试强>
快速测试以验证除6
,000
和666
之外的所有内容是否匹配:Dotnet Fiddle
900-999