当前位置: 首页 > 编程语言 > C#

正则表达式匹配多个组分享

时间:2023-04-10 19:48:21 C#

正则表达式匹配多个组我有一个字符串的例子,我试图匹配一个正则表达式:正则表达式:^d{3}([0-9a-fA-F]{2}){3}要匹配的字符串:010000000我的问题是-正则表达式匹配并捕获1组-字符串末尾的最后一个00。但是,我希望它在最后匹配所有三个00组。为什么这不起作用?当然括号应该意味着它们都是平等匹配的吗?我知道我可以分别输入三个组,但这只是对较长字符串的简短提取,所以会很痛苦。我希望这会提供一个更优雅的解决方案,但似乎我的理解有点欠缺!谢谢!因为捕获组上有一个量词,所以您只能看到上一次迭代的捕获。幸运的是,.NET(与其他实现不同)提供了一种机制,用于通过CaptureCollection类从所有迭代中检索捕获。来自链接的文档:如果将量化器应用于捕获组,则CaptureCollection包含每个捕获的子字符串的Capture对象,而Group对象仅提供有关最后捕获的子字符串的信息。以及链接文档提供的示例://将句子与具有量词的模式匹配//适用于整个组。pattern=@"(bw+W{1,2})+";match=Regex.Match(输入,模式);Console.WriteLine("模式:"+pattern);Console.WriteLine("匹配:"+match.Value);Console.WriteLine("Match.Captures:{0}",match.Captures.Count);for(intctr=0;ctr这适用于您当前的字符串。我需要一个更好的示例(更多字符串等)来查看这是否会破坏这些字符串。单词边界(b)检查是否有任何非单词字符:以上是C#学习教程:正则表达式匹配多个组共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注---b[0-9a-fA-F]{2}b本文收集自网络,并非原创代表一个立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: