C#简单正则表达式模式
本文关键字:模式 正则表达式 简单 | 更新日期: 2023-09-27 17:49:13
我有点迷上了C#正则表达式,我想替换:
[img:32uyjtdu]
带
<img src="
32uyjtdu
是任意数量的字符。
以下代码用<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 ">
这个问题很含糊。。尚未提供准确的预期答案样本。