C#怎样替换正则表达式匹配到的每个字符串?
比如:在一整段文本中将符合正则表达式exp1条件的每个字符串都替换为另一个字符串,替换过程要调用一个函数F(stringinstr){...............(转换...
比如:在一整段文本中将符合正则表达式exp1条件的每个字符串都替换为另一个字符串,替换过程要调用一个函数F(string instr){ ...............(转换方法)........return outstr;},参数instr是每一个符合正则表达式的字符串,返回转换后的字符串outstr,然后用转换后的字符串 替换 原来的字符串(原位置)。
可能我说的有点乱,具体不清楚的可以问我。
求解 展开
可能我说的有点乱,具体不清楚的可以问我。
求解 展开
1个回答
展开全部
你可以先查找,再一个一个的替换,顺序应该是对应的
更多追问追答
追问
foreach (Match item_u in mat_u)
{
//item_u.Groups[1].Value=Regex.Replace(item_u.Groups[1].ToString(), @"((?<=#)\d+(?=;)*)", UtoChar(item_u.Groups[1].ToString()));
}
item_u.Groups[1].Value只读,怎么办?
追答
不是你这样。假如源字符串是s
foreach (Match item_u in mat_u)
{
s=Regex.Replace(s, item_u.Groups[1].ToString(), UtoChar(item_u.Groups[1].ToString()));
}
不过如果item_u.Groups[1].ToString()里又正则的元字符的话,需要把元字符转义成普通字符。你可以搜一下Regex.Escape,或者自己写个函数处理
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询