string str=Regex.Replace("abc",@"\d?",",");结果是,a,b,c,这样的结果好像是在a前,ab之间,bc之间,还有c后面插入一个逗号一样,而不是替换掉。而且怎么觉得不是在匹配字符,而是匹配它们之间的位置,更怪的是为什么最后面也弄出个逗号,我该怎么理解正则所谓的匹配,匹配位置?匹配字符?还是其它?
此表达式对应下面这个重载函数
public static string Replace( string input, string pattern, string replacement ) 也就是对于输入字符串"abc"所有满足@"\d?"的匹配,都用","来代替,而@"\d?"表示匹配任意数字字
符的一次或者0此匹配,所以,匹配了abc之间的部分。可能这并非作者本意吧
确定运行结果是这样?
\d?表示匹配0-9一次或零次,建议你运行下看看