C# 分析和替换字符串中的内容

本文关键字:字符串 替换 | 更新日期: 2023-09-27 18:35:42

这是我第一次尝试使用正则表达式。

我想存档的是转换这个字符串:

" <Control1 x:Uid="1"  />
  <Control2 x:Uid="2"  /> "

" <Control1 {1}  />
  <Control2 {2}  /> "

基本上,将 x:Uid="n" 转换为 {n},其中 n 表示一个整数。

我认为它会起作用(当然不是)是这样的:

  string input = " <Control1 x:Uid="1"  />
                   <Control2 x:Uid="2"  /> ";
  string pattern = "'b[x:Uid='"['d]'"]'w+";
  string replacement = "{}";
  Regex rgx = new Regex(pattern);
  string result = rgx.Replace(input, replacement);

  Regex.Replace(input, pattern, delegate(Match match)
  {
       // do something here
       return result
  });

我正在努力定义模式和替换字符串。我不确定我是否在解决问题的正确方向上。

C# 分析和替换字符串中的内容

方括号定义字符类,此处不需要该字符类。相反,您希望使用捕获组:

string pattern = @"'bx:Uid=""('d)""";
string replacement = "{$1}";

请注意使用逐字字符串来确保将'b解释为单词边界锚点而不是退格符。