C#中的正则表达式捕获组

时间:2017-03-29 22:05:33

标签: c# regex

我正在尝试提出一个正则表达式,它将在3个不同的部分中分割出一个字符串:名称,地址和电话号码。

这就是我目前所拥有的:

^(?<Name>\w.*)\s+(?<Address>\d+\s\w+.*\d{5,9})\s+(?<Phone>\d+.*)

以下是regex101给我回复以下示例字符串的内容: enter image description here

但是如果我在套件编号之前添加'#',它会按计划运行: enter image description here

我甚至尝试在单独的实例中对整个字符串运行地址正则表达式,它运行得很好。捕获组正在发生一些事情,它正在抛弃它。任何建议将不胜感激!

1 个答案:

答案 0 :(得分:1)

尝试将名称设为非贪婪:

^(?<Name>\w.*?)\s+(?<Address>\d+\s\w+.*\d{5,9})\s+(?<Phone>\d+.*)