0

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

数字

, 或 - 或 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

有什么帮助吗?

4

2 回答 2

2

您需要对集合中的破折号进行转义,否则它将匹配从逗号到 N 的所有字符。

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

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

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

或者,也许您想使用确切的序列-N-作为分隔符之一,这样它就不会匹配例如4NNNNNNNN0or 4-,-,-,-,-,0

([0-9]+([,\-]|-N-))+[0-9]+
于 2012-08-31T21:56:01.783 回答
1

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

于 2012-08-31T21:56:39.857 回答