正则表达式匹配数字,-N和数字

时间:2012-08-31 21:51:54

标签: regex

我正在尝试匹配模式中的字符串,

数字

,或 - 或N

编号

 ([0-9]+[,-N])+[0-9]+

应该匹配,

 87-7-6   
 86-6-2,3    
 4-N-0  
 87-7-6   
 86-14-2,3    
 4-N-0

不匹配,

4-N-0

任何帮助?

2 个答案:

答案 0 :(得分:2)

您需要在集合中转义短划线,否则它将匹配从逗号到N的所有字符。

([0-9]+[,\-N])+[0-9]+

它与4-N-0不匹配,因为它不属于您所描述的应匹配的内容。如果您希望它匹配多个分隔符,请在该集​​合之后添加+

([0-9]+[,\-N]+)+[0-9]+

或者您可能希望使用确切的序列-N-作为其中一个分隔符,因此它不匹配,例如4NNNNNNNN04-,-,-,-,-,0

([0-9]+([,\-]|-N-))+[0-9]+

答案 1 :(得分:1)

连字符是保留符号。它应该是:     ([0-9]+[,\-N])+[0-9]+