C#简单的正则表达式模式

时间:2011-04-07 18:28:50

标签: c# regex

我在C#regexp上有点迷失,我想替换:

  

[IMG:32uyjtdu]

使用

<img src="

32uyjtdu是任意数量的字符。

9 个答案:

答案 0 :(得分:4)

以下代码使用[img:32uyjtdu]替换任何32uyjtdu(其中<img src="代表一系列小写字母和任意长度的数字):

var input = "Foo bar [img:32uyjtdu] baz qux";

var result = Regex.Replace(input, @"\[img:([a-z0-9]*)\]", @"<img src=""");

//  result == "Foo bar <img src=\" baz qux"

答案 1 :(得分:3)

这将匹配您提供的输入字符串:

\[img\:[0-9a-zA-Z]+\]

这是测试你的正则表达式的一个很酷的资源:

http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

答案 2 :(得分:3)

您需要在名为name的群组中捕捉图像名称并使用它来进行正确的替换

Regex r = new Regex(@"\[(img:(?<name>[^]]*)\]", RegexOptions.Compiled);
r.Replace(text, @"<img src="""${name}"">");

答案 3 :(得分:2)

喜欢这个?不知道你想做什么......

var xxx = "xxxxxxx [img:32uyjtdu] xxxxxxx";

var result = Regex.Replace(xxx, @"\[img\:([a-z0-9]+)\]",
    (m) =>
    {
        // do your thing here...
        return String.Format("<img alt='' src='{0}' />", m.Groups[1].Value);
    },
    RegexOptions.IgnoreCase);

答案 4 :(得分:1)

你在这里

\[img:[0-9a-zA-Z]+?\]

这将匹配'img:'之后的任意数量的字符(a-z,A-Z)和数字

答案 5 :(得分:1)

测试正则表达式的一个不错的工具是Regular-Expressions.info

在这种情况下,你只需要做

  

\ [IMG \:(?&LT; IMG&GT; [^ \]] +)\]

提取组'img'并使用它来创建新的图像标记。

[编辑]

替换文字将是

  

&lt; img src =“$ 1”/&gt;

  

&lt; img src =“$ {img}”/&gt;

答案 6 :(得分:1)

你可以使用Regex.Replace模式[img \ :( [0-9A-Za-z] +)\

Regex.Replace("[img:32uyjtdu]", "\[img\:([0-9A-Za-z]+)\", "<img src=\"");

我喜欢用www.regexpal.com来测试我的正则表达式。它会在您输入正则表达式时进行搜索和匹配,以便立即反馈。

答案 7 :(得分:1)

我认为这个正则表达式是您所需要的。

\[img:[^\]]*\]

答案 8 :(得分:0)

你可以试试这个:

string result = Regex.Replace(" xx    [img:32uyjtdu]  abc ",
                             @"(.*)(\[img:.*?\])(.*)",
                              "$1<img src=\"$3\">");

result字符串包含您的输出文本:

xx <img src=" abc ">

问题非常模糊..未提供准确的预期答案样本。