正则表达式用于匹配数字并使用破折号作为数字的通配符

时间:2014-04-24 16:53:05

标签: regex

任何人都可以帮助这个正则表达式吗?我们存储1234----之类的值,需要将其与用户输入相匹配。

1234开头并且每个短划线的附加数字都是匹配的:

12345678将是匹配

12345692341234不匹配

因此,额外的位数需要与短划线的数量相同。字符必须是数字,而不是字母或其他任何内容。

谢谢。

3 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式:

^1234[0-9]{4}$

这将匹配以1234开头,后跟4位数的所有输入。

Online Demo

答案 1 :(得分:1)

你试过这个吗?

^1234\d{4}$

根据您的评论我已将正则表达式更新为c#:

matchResults = Regex.Match(subjectString, @"^1234\d{4}$");

<强> 样本: http://regex101.com/r/gF2lZ0

答案 2 :(得分:1)

那么你需要从1234----构建正则表达式 - 比如字符串吗?然后,您可以将-替换为\d,在字符串的开头添加^,并在字符串的末尾添加$。对于给定的字符串,它将创建^1234\d\d\d\d$正则表达式。

string input = "12345678";
string mask = "1234----";
string regex = string.Format("^{0}$", mask.Replace("-", @"\d"));
bool isMatch = Regex.IsMatch(input, regex);