一个简单的例子:
Regex.Replace("12345678910999999999", @"(\d{3})(\d{3})(\d{3})(\d{2})", "$1-$2-$3 $4")
这输出到:
123-456-789 10999999999
但是为什么?我已经专门设置了我需要的组索引。并且该组索引包含确切的值(在调试器中检查过)。
这是一个 fiddle : https://dotnetfiddle.net/dkAPx3
最佳答案
将字符串的其余部分与 .*
匹配以将其截断:
Regex.Replace("12345678910999999999", @"^(\d{3})(\d{3})(\d{3})(\d{2}).*", "$1-$2-$3 $4")
我还会在开头添加 ^
以匹配字符串的开头。
参见 .NET regex demo 。
关于c# - 为什么 Regex.Replace 给我最后一组奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62936238/