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

查找具有额外资格标准的所有比赛分享

时间:2023-04-11 00:45:57 C#

C#学习教程:查找所有具有附加资格标准的竞赛男孩有一只狗和一只猫。男孩用微波炉加热一只沙鼠。莎莉有一只猫。对于每个句子,我想要一个动物列表(定义为“狗”、“猫”或“沙鼠”),其中“男孩”是第一个词。对于上面的列表,那将是;['dog','cat']['gerbil']第三句不匹配。正则表达式;dog|cat|gerbil将返回所有匹配项,但不是男孩特定的(第三句将返回不受欢迎的“猫”)。^Boy.*(dog|cat|gerbil)返回最后一个匹配动物的整个短语,例如“男孩有一只狗和一只猫”,而第一组也是唯一一组是“猫”。列表(即以“男孩”开头的句子中的动物)?您可以使用正向观察:(?或者,具有单词边界的变体将动物作为整个单词进行匹配:(?请参阅正则表达式演示(?正向后视将需要字符串开头的Boy来匹配消费模式。如果您输入包含LF(换行符)字符,传递RegexOptions.Singleline选项。也匹配换行符。C#用法:varresults=Regex.Matches(s,@"(?().Select(m=>m.Value).ToList();C#演示:varstrs=newList(){"Boyhasadogand一只猫。”,“男孩是一只沙鼠。”,“Sally拥有一只猫。”};foreach(varsinstrs){varresults=Regex.Matches(s,@"(?().Select(m=>m.Value).ToList();if(results.Count>0){Console.WriteLine("{0}:n[{1}]n------",s,string.Join(",",results));}else{Console.WriteLine("{0}:nNOMATCH!n------",s);}}输出:男孩有一只狗和一只猫。:[dog,cat]------Boysomethingagerbil.:[gerbil]------Sallyownsacat.:NOMATCH!------另一种方式:匹配以Boy开头的任何内容,然后在每个之后匹配成功:(?:G(?!A)|^Boyb).*?b(dog|cat|gerbil)b看这个正则表达式演示(或这里的regex101链接)你只需要抓取第1组的内容:var结果=Regex.Matches(s,@"(?:G(?!A)|^Boyb).*?b(dog|cat|gerbil)b").Cast().Select(m=>m.Groups[1].Value).ToList();SeethisC#demo.在这里,基本上,这些正则表达式是类似的,虽然G基于G的正则表达式可能会快一点。以上是C#学习教程:查找所有有附加资格标准的比赛分享的内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注---本文收集自网络,不代表立场,如涉及侵权,请指正点击右侧联系管理员删除。如需转载请注明出处: