我做了一个正则表达式,这是它的一部分:
"[[+31|0]2[[0-9]{2}|0]+]+|"+ //+312** / +3120 / 02** / 020 ERROR: 0800?
正如您所看到的,想要的输出是例如+312或+3120或02 .. 但我的问题是正则表达式也接受0800和0900。我不想要的。我也没有任何线索,为什么它接受它,因为正则表达式中有2。
我粘贴的部分是正则表达式的一小部分,这是错误的。 任何人都可以帮我解决这个问题吗?
编辑: 这是我的完整正则表达式
"(([+31]+|[31]+|"+ //+31 / 31
"[[+31|0]2[[0-9]{2}|0]+]+|"+ //+312** / +3120 / 02** / 020 ERROR: 0800?
"[[+31|0]6]+"+ //+316 / 06
")[-]?"+ // - / ..
"[0-9]{3,8})|"+ //einde van nummer.
"(112)"; //112
它接受0800-1234它不应该。第二条规则是批准它。
答案 0 :(得分:4)
您可以互换使用方括号和括号。他们是不同的。 []
环绕字符类。 ()
围绕子表达式。
根据你的正则表达式,修复的第一步是:
((\+31|0)2([0-9]{2}|0)+)+