C#中的简单字符串替换问题

时间:2011-07-05 17:03:17

标签: c# .net

在以下示例中,我需要将所有\b替换为<b>,将所有\b0替换为</b>

快速\ b棕色狐狸\ b0跳过\ b懒狗\ b0。
。感谢

4 个答案:

答案 0 :(得分:10)

正则表达式对此非常过分(通常是这样)。一个简单的:

string replace = text.Replace(@"\b0", "</b>")
                     .Replace(@"\b", "<b>");

就足够了。

答案 1 :(得分:0)

您不需要正则表达式,只需replace the values with String.Replace.

即可

但是如果你很想知道这是怎么回事done with regex (Regex.Replace)这里有一个例子:

var pattern = @"\\b0?"; // matches \b or \b0

var result = Regex.Replace(@"The quick \b brown fox\b0 jumps over the \b lazy dog\b0.", pattern,
    (m) =>
    {
        // If it is \b replace with <b>
        // else replace with </b>
        return m.Value == @"\b" ? "<b>" : "</b>";
    });

答案 2 :(得分:0)

var res = Regex.Replace(input, @"(\\b0)|(\\b)", 
    m => m.Groups[1].Success ? "</b>" : "<b>");

答案 3 :(得分:0)

作为一个快速而肮脏的解决方案,我会在2次运行中执行此操作:首先将“\ b0”替换为"</b>",然后将“\ b”替换为"<b>"

using System;
using System.Text.RegularExpressions;

public class FadelMS
{
   public static void Main()
   {
      string input = "The quick \b brown fox\b0 jumps over the \b lazy dog\b0.";
      string pattern = "\\b0";
      string replacement = "</b>";
      Regex rgx = new Regex(pattern);
      string temp = rgx.Replace(input, replacement);

      pattern = "\\b";
      replacement = "<b>";
      Regex rgx = new Regex(pattern);
      string result = rgx.Replace(temp, replacement);

   }
}