使用正则表达式在5位数之后插入9位数的连字符

时间:2011-01-01 11:20:55

标签: c# .net regex

我必须在c#中的文本更改事件中自动插入9位数的连字符,而不是javascript。

因此,如果我的号码是123456789,那么它会自动变为12345-6789。

我想使用regex.match。

我的尝试:

正则表达式“^ \ d {5}( - \ d {4})?$”是结果应该如何。

所以,

Regex regTest = new Regex("^\\d{5}(-\\d{4})?$");

Match match = regTest.Match(s);

if (match.Success)
           {
              var numString = match.Value;
           }

但上述情况并未取得成功。

感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

您的代码示例只需检查格式为xxxxx-xxxx。它不插入连字符。

您不需要RexEx来插入连字符:

myString.Insert(5, "-");

答案 1 :(得分:0)

正则表达式似乎是正确的。你可以在这里验证:
http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

很可能你没有插入' - '然后匹配。