C#简单正则表达式模式

本文关键字:模式 正则表达式 简单 | 更新日期: 2023-09-27 17:49:13

我有点迷上了C#正则表达式,我想替换:

[img:32uyjtdu]

<img src="

32uyjtdu是任意数量的字符。

C#简单正则表达式模式

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

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"

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

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

这里有一个很酷的资源来测试正则表达式:

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

您需要在一个名为name的组中捕获您的图像名称,并使用它来正确替换

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

这样?不确定你想做什么…

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);

Regular-Expressions.info 提供了一个测试Regex的好工具

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

''[img'':(?<img>[^'']+('']

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

[编辑]

替换文本为

<img src="$1"/>

<img src="${img}"/>

您将使用Regex。替换为模式[img'':([0-9A-Za-z]+(''

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

我喜欢使用www.regexpal.com来测试我的regexs。它在您放入regex时进行搜索和匹配,因此反馈是即时的。

我认为这个regexp正是您所需要的。

'[img:[^']]*']

这是

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

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

之后的数字

你可以试试这个:

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

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

xx <img src=" abc ">

这个问题很含糊。。尚未提供准确的预期答案样本。