同时在同一个正则表达式上添加两个替换-做两件事

时间:2019-12-27 09:58:11

标签: c# regex

我的问题是,例如当我添加一个点时,就需要替换它。然后出现此错误:

  

无法从字符串转换为System.stringComparison

如果我因此对最后一次替换发表评论。那就没有问题,但是只有当我在Regex上添加了额外的替换项时,这种情况才会发生。

text = Regex.Replace(text, @"{(?s)(.*){medlem}}.*{{medlemstop}}",
       "<img src=\"https://aaaa.azureedge.net/imagesfiles/hello.png\" class=\"img-responsive\" alt=\"hello world\">")
       .Replace(text, @"{(?s)(.*){pay}}.*{{paystop}}", "ERROR HERE!!!");

我也尝试这样做:

https://stackoverflow.com/a/6276014/12596984

1 个答案:

答案 0 :(得分:1)

如果只有Regex.Replace返回Regex,我们将可以链接 ReplaceReplace(...).Replace(...).Replace(...); 可惜! Replace返回string,因此我们不能在其上使用Regex方法(string)。选项是:

嵌套呼叫:

text = Regex.Replace(
         Regex.Replace(
                 text, 
               @"{(?s)(.*){medlem}}.*{{medlemstop}}",
                "<img src=\"https://aaaa.azureedge.net/imagesfiles/hello.png\" class=\"img-responsive\" alt=\"hello world\">"),
         @"{(?s)(.*){pay}}.*{{paystop}}", 
          "ERROR HERE!!!");

顺序调用:

 text = Regex.Replace(
              text, 
            @"{(?s)(.*){medlem}}.*{{medlemstop}}",
             "<img src=\"https://aaaa.azureedge.net/imagesfiles/hello.png\" class=\"img-responsive\" alt=\"hello world\">");

 text = Regex.Replace(
             text, 
            @"{(?s)(.*){pay}}.*{{paystop}}", 
             "ERROR HERE!!!");