我正在尝试制定一个正则表达式来匹配具有一定长度的字符串,但不计算“ - ”字符(但可能有多个。
例如:
123-45 12345 123456 abc 123a4... (very long string)
期望的结果:
123-45
12345
答案 0 :(得分:2)
要匹配5位数字,允许任意数量的介入,但不是前导/尾随,破折号:
(?<!-)\b(\d-*){4}\d\b(?!-)
请参阅显示以下各项的demo:
123-45 12345 1-2-3-4-5 1----2345
但没有:
1234a5 123456 1234 -12345 123-45-
答案 1 :(得分:0)
你不需要这里的正则表达式。您可以执行以下伪代码。
var len = str.replace("-", "").length;
if(len > 5 || len < 7){
// valid
}
只需删除每个-
,然后检查length