我使用以下正则表达式模式在[code]
和[/code]
标记之间查找文字:
(?<=[code]).*?(?=[/code])
它会返回包含在这两个标签之间的任何内容,例如:这个:[code]return Hi There;[/code]
给了我return Hi There;
。
我需要有关正则表达式的帮助,才能用标记替换整个文本 。
答案 0 :(得分:6)
使用此:
var s = "My temp folder is: [code]Path.GetTempPath()[/code]";
var result = Regex.Replace(s, @"\[code](.*?)\[/code]",
m =>
{
var codeString = m.Groups[1].Value;
// then you have to evaluate this string
return EvaluateMyCode(codeString)
});
答案 1 :(得分:4)
我会使用HTML Parser。我可以看到你想要做的事情很简单,但这些事情习惯于加班加倍。对于那些必须在将来维护代码的穷人来说,最终的结果是非常痛苦。
看看有关HTML解析器的这个问题 What is the best way to parse html in C#?
<强> [编辑] 强>
以下是对所提问题的更为相关的答案。
@Milad Naseri正则表达式是正确的你只需要做
string matchCodeTag = @"\[code\](.*?)\[/code\]";
string textToReplace = "[code]The Ape Men are comming[/code]";
string replaceWith = "Keep Calm";
string output = Regex.Replace(textToReplace, matchCodeTag, replaceWith);
查看此网站了解更多示例
http://www.dotnetperls.com/regex-replace
http://oreilly.com/windows/archive/csharp-regular-expressions.html
希望这有帮助
答案 2 :(得分:1)
您需要使用反向引用,即将\[code\](.*?)\[/code\]
替换为类似<code>$1</code>
的内容,它将为您提供所附的[code][/code]
标记所包含的内容 - 对于此示例 - { {1}}代码。