在C#的正则表达式,我们可以写一个正则表达式和分配一个名称的一组,例如,为什么System.Text.RegularExpressions.Group没有Name属性?
(?<One>abc)
然而,在类System.Text.RegularExpressions.Group,存在用于无属性团队名字。我们能得到名字的唯一方法是
System.Text.RegularExpressions.GetGroupNames()
为什么他们不能把名称中的属性放在Group类中?有没有设计不这样做的特别原因?
编辑: 我遇到了这个问题,当我尝试使用以下功能:
Regex.Replace(string input,
string pattern,
MatchEvaluator evaluator
)
我想用一样的一个评估多个顶替根据不同的正则表达式来处理。如果组中有一个名称属性,那么在内部评估程序中,我可以通过查看它的名称来判断它是哪个正则表达式。但是,没有这样的财产。
我最终通过使用闭包并使用GetGroupNames来完成它,但我仍然认为它应该具有name属性。如果该组没有名称,则该属性可以为空。
您的问题不是很清楚。如果你发布了你希望工作的那种代码的代码示例,这将有助于澄清你的问题。 –
如果你创建了正则表达式,你不知道组名是什么吗? –
除非设计团队的人看到这一切,否则我们可以做的就是推测。我的猜测是,从未被认为足够重要,以保证开发和测试时间。 – tvanfosson