日期:2014-05-18  浏览次数:20776 次

请教一下正则表达式*
字符串:string sentence = "8"
正则表达式:string pattern = \d*

最后的匹配结果集合MatchCollection中,怎么元素个数是2个呢?明明只有一个匹配结果啊?


------解决方案--------------------

string pattern = \d*

----->

Regex re = new Regex("\\d+", RegexOptions.None);
------解决方案--------------------
\d*可以匹配""和数字,应改为\d+

\d*第一次贪婪匹配到8,第二次匹配8后面的位置,得到长度为0的字符串,所以有两个匹配项。
------解决方案--------------------
参考这篇文章的开头部分:http://blog.csdn.net/lxcnn/article/details/4268033
------解决方案--------------------
如果 用 \d* 去匹配 abc,你会发现有4个匹配项。

改成 \d+ 吧!
------解决方案--------------------
探讨
是的啊,那么,诸如这类问题,需不需要问个为什么呢?本人刚接触正则表达式