正则表达式:固定长度不考虑“ - ”考虑
问题描述:
我试图制定一个正则表达式来在一定长度匹配字符串,但不计算“ - ”字符(但可能有不止一个正则表达式:固定长度不考虑“ - ”考虑
例如:
123-45 12345 123456 abc 123a4... (very long string)
期望的结果:。
123-45
12345
答
要匹配5位的话,允许任何数目的插入,但不是前/后,破折号:
(?<!-)\b(\d-*){4}\d\b(?!-)
见demo显示匹配每个:
123-45 12345 1-2-3-4-5 1----2345
但是没有:
1234a5 123456 1234 -12345 123-45-
答
你并不需要一个正则表达式在这里你可以做下面这是伪代码
var len = str.replace("-", "").length;
if(len > 5 || len < 7){
// valid
}
只是删除每一个-
,然后再检查length
+0
我需要一个正则表达式。为什么?因为这对我更容易。例如,我也过滤了一些字符(数字),我从一个长字符串中提取了一组有效序列(它们之间有一些分隔:利润,跳转线等)。我知道,你可以用代码做任何事情,所以直到现在,它不是很好。你的答案是在正则表达式中是不可能的? – dovid 2014-12-02 14:01:11
你能否清楚地解释你的问题。 – 2014-12-02 13:55:02