标签: .net regex
我尝试创建匹配的正则表达式
112 / AA-BB
但不是
111 / XX-ZZ-2
到目前为止我所尝试的是:\b[0-9]{3}(?:\W[A-Z]{2}){2}\b。但是,这也匹配第二个输入。有没有办法将整个表达式限制为9个字符或解决方法?
\b[0-9]{3}(?:\W[A-Z]{2}){2}\b
此处a link to my tests。
答案 0 :(得分:2)
看起来\ b仍在计算-作为单词边界,即单词的结尾。所以你可以做的就是添加一个负面的预测,以防止你的字符串匹配,如果它后跟一个破折号:
-
\b\d{3}\/[A-Z]{2}-[A-Z]{2}\b(?!-)
请参阅this demo。
答案 1 :(得分:1)
我不清楚你想要它匹配什么,但可能你可以使用(?=.{9}[,\s$])添加以逗号,空格或其他分隔符结尾的指定长度字符串的前瞻。
(?=.{9}[,\s$])
因此,结果将类似于that:
(?=.{9}[,\s$])[0-9]{3}(?:\W[A-Z]{2}){2}