求解一个正表达式替换问题

pupstar 2009-05-21 11:16:01
原来方法:
public void Replace(string profile, string newstr, bool bIgnoreCase)
{
string pattern = Regex.Escape(profile);
string instead = newstr.Replace("$", "$$");
pattern = pattern.Replace(@"\[变量]", @"[\s\S]*?");
string[] _pattern = pattern.Split(new char[] { '[', '过', '滤', '字', '符', '串', ']' }, StringSplitOptions.RemoveEmptyEntries);
string p = "";
string n = "";
for (int i = 0; i < _pattern.Length; i++)
{
string s = _pattern[i];
if (!s.Equals(""))
{
p += "(?<ch" + i + ">" + s +@")[\s\S]+?";
n += "${ch" + i + "}" + instead;
}
}
Regex reg;
if (bIgnoreCase)
reg = new Regex(p, RegexOptions.Compiled | RegexOptions.IgnoreCase);
else
reg = new Regex(p, RegexOptions.Compiled);
m_content = reg.Replace(m_content, n);
}

说明:profile为一个正则表达式或替换前的字符串, newstr为替换后的字符串,m_content为待替换的字符串(如一篇文章)。
怎么样修改上面方法来实现批量替换,其效果为: 要把“中华人民共和国”替换为“中国”。(上面方法能执行,但不是其效果。)

注:请不要给出:m_content.Replace(oldstr, newstr); 等类似的方法。
...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

62,249

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧