首页 新闻 会员 周边 捐助

无法理解这样的正则表达式,痛苦!!

0
悬赏园豆:20 [已关闭问题] 关闭于 2010-06-19 20:08

string str=Regex.Replace("abc",@"\d?",",");结果是,a,b,c,这样的结果好像是在a前,ab之间,bc之间,还有c后面插入一个逗号一样,而不是替换掉。而且怎么觉得不是在匹配字符,而是匹配它们之间的位置,更怪的是为什么最后面也弄出个逗号,我该怎么理解正则所谓的匹配,匹配位置?匹配字符?还是其它?

自由小菜园的主页 自由小菜园 | 初学一级 | 园豆:6
提问于:2010-06-04 21:36
< >
分享
所有回答(2)
0

此表达式对应下面这个重载函数

public static string Replace(
	string input,
	string pattern,
	string replacement
)
也就是对于输入字符串"abc"所有满足@"\d?"的匹配,都用","来代替,而@"\d?"表示匹配任意数字字
符的一次或者0此匹配,所以,匹配了abc之间的部分。可能这并非作者本意吧
翰墨小生 | 园豆:51 (初学一级) | 2010-06-05 08:11
0

确定运行结果是这样?

\d?表示匹配0-9一次或零次,建议你运行下看看

最初的模样 | 园豆:198 (初学一级) | 2010-06-17 00:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册