我在C#regexp上有点迷失,我想替换:
[IMG:32uyjtdu]
使用
<img src="
32uyjtdu
是任意数量的字符。
答案 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 ">
问题非常模糊..未提供准确的预期答案样本。