问一个msdn上的简单例子,但我不明白一处

问题描述

usingSystem;usingSystem.Text.RegularExpressions;publicclassExample{publicstaticvoidMain(){stringinput="Yes.Thisdogisveryfriendly.";stringpattern=@"((w+)[s.])+";foreach(MatchmatchinRegex.Matches(input,pattern)){Console.WriteLine("Match:{0}",match.Value);for(intgroupCtr=0;groupCtr<match.Groups.Count;groupCtr++){Groupgroup=match.Groups[groupCtr];Console.WriteLine("Group{0}:{1}",groupCtr,group.Value);for(intcaptureCtr=0;captureCtr<group.Captures.Count;captureCtr++)Console.WriteLine("Capture{0}:{1}",captureCtr,group.Captures[captureCtr].Value);}}}}//Theexampledisplaysthefollowingoutput://Match:Yes.//Group0:Yes.//Capture0:Yes.//Group1:Yes.//Capture0:Yes.//Group2:Yes//Capture0:Yes//Match:Thisdogisveryfriendly.//Group0:Thisdogisveryfriendly.//Capture0:Thisdogisveryfriendly.//Group1:friendly.这就是我不明白的地方,按理说Group1应该是用@"((w+)[s.])“这个正则表达式去匹配第二个match也就是Thisdogisveryfriendly.那也有好几个,第一个是"This",第二个是"dog",第三个是"is",第四个是"very"第五个才是"friendly."为什么只取了最后一个作为这个match的Group[1]来显示呢?//Capture0:This//Capture1:dog//Capture2:is//Capture3:very//Capture4:friendly.//Group2:friendly//Capture0:This//Capture1:dog//Capture2:is//Capture3:very//Capture4:friendly

解决方案

解决方案二:
这个没什么好研究的啊,人家就是返回最后一个匹配到的,就跟你定义了个方法一样,你可以返回1代表结果,也可以返回2代表结果,人家也提供了Capture来让你获取这个group匹配到的所有结果
解决方案三:
引用1楼starfd的回复:

这个没什么好研究的啊,人家就是返回最后一个匹配到的,就跟你定义了个方法一样,你可以返回1代表结果,也可以返回2代表结果,人家也提供了Capture来让你获取这个group匹配到的所有结果

谢谢!也就是说,这是规定。如果要遍历所有,就要用CaptureCollection.
解决方案四:
group[“”].value也可以的。。。
解决方案五:
引用3楼Kim01的回复:

group[“”].value也可以的。。。

谢谢!

时间: 2024-10-28 00:56:51

问一个msdn上的简单例子,但我不明白一处的相关文章

一个颜色轮换的简单例子

一个颜色轮换的简单例子,使用三元运算子,使程序简练. 我们曾经在网站上看过一些表格单元格的背景颜色是隔行变化的,其实用下面一段很小的一段代码就可以实现: $color=(($coloralter++ %2)? "e0e0e0":"e8e8e8") ,即通过将变量累加和2取余,运用三元运算子来取得两个不同得颜色值. 示例如下: <html> <head> <title>test</title> <meta http

一个O/RMapping的简单例子

ORMAPPING出来已经很多年了,之前一直有关注,但一直没有应用到项目中去,众所周知,ORMAPPING 的性能是很大一个问题,虽然它节省代码量,为程序员做了很多工作.而且ORMAPPING主要应用在JAVA领 域,.NET领域用到的少之又少,最近公司要做一个内部的资产管理系统,我就打算用ORMAPPING来做,对 几种ORMAPPING的框架我进行了比较,第一,nhibernate这个我相信大家比较熟悉了,nhibernate在JAVA 领域已经应用相当广泛了,nhibernate最持久层性

usb-请问一个安卓上的RFID读卡器问题

问题描述 请问一个安卓上的RFID读卡器问题 要在安卓的pad上开发一个刷m1卡的项目, 请问有经验的朋友, 哪种RFID读卡器好, 可以直接插在安卓的micro usb上的

SYBAES ASE 12.0 上一个横表转纵表的简单例子

SYBAES ASE 12.0 上一个横表转纵表的简单例子   千千如梦 2002年10月   /* create table ... */create table #dest_table(                         Flag char(1),                         A int null,                         B int null,                         C int null,         

一个简单例子教你揭开AJAX神秘面纱

ajax 本文通过一个简单的例子来说明如何在IE6中使用AJAX技术.在这例子中,客户端每隔十秒,从服务器端取回一个随机的字符串,在不重新刷新页情况下,自动更新部分页面内容.例子仅用到了两个jsp文件,client.jsp及server.jsp. AJAX,即"Asynchronous JavaScript And XML"的缩写,可翻译为异步JavaScript及XML技术.其核心是一个寄宿在浏览器中名为XMLHTTPRequest的类.通过此类,可以做到无需提交表单就可以实现与服务

objective-c-ios 想问一个很简单的异步问题

问题描述 ios 想问一个很简单的异步问题 [manager POST:@""https://www.baidu.com"" parameters:@{} success:^(AFHTTPRequestOperation *operation id responseObject) { NSLog(@""ok1""); } NSLog(@""ok2""); 很明显这段代码 如果打印的话 肯

filenamefilter-关于FilenameFilter的一个简单例子,但总是有空指针异常,哪位大侠帮忙看看吧

问题描述 关于FilenameFilter的一个简单例子,但总是有空指针异常,哪位大侠帮忙看看吧 public class Demo { public static void main(String[] args) { File dir=new File("D:\test"); JavaTest filter=new JavaTest("java"); File[] files=dir.listFiles(filter); for(File a:files){ Sy

php 文件上传的简单例子

在您可以使用PHP来管理您的上传,你首先需要建设作为用户界面的HTML表单上传的文 件.有一个在下面的例子外观和保存一个编辑HTML代码. <html> <body>   <form enctype="multipart/form-data" action="upload.php" method="post">     <input type="hidden" name="M

web.config文件自定义配置节的使用方法的一个简单例子

web web.config文件自定义配置节的使用方法的一个简单例子用来演示的程序名为MyApp,Namespace也是MyApp 1.编辑web.config文件 添加以下内容,声明一个Section <configSections>    <section name="AppConfig" type="MyApp.AppConfig, MyApp" /> </configSections>   声明了一个叫AppConfig的