C# 我需要一个正则表达式来代替.NET中的伪html

C# 我需要一个正则表达式来代替.NET中的伪html,c#,.net,regex,C#,.net,Regex,我有这样的文本: this is a text in [lang lang="en" ]english[/lang] or a text in [lang lang="en" ]spanish[/lang] 我需要用它们代替: this is a text in <span lang="en">english </span> or a text in <span lang="es">spanish</span> 这是英文文本或西班牙文文本 我

我有这样的文本:

this is a text in [lang lang="en" ]english[/lang] or a text in [lang lang="en" ]spanish[/lang]
我需要用它们代替:

this is a text in <span lang="en">english </span> or a text in <span lang="es">spanish</span>
这是英文文本或西班牙文文本

我需要一个正则表达式,而不是一个简单的替换。lang标记中的语言可以是任何语言。

您只需将
[/lang]
替换为
,然后使用

Regex.Replace(text, @"\[lang lang=""(\w+)""\]", "<span lang=\"$1\">")
Regex.Replace(文本,@“\[lang=”“(\w+”)“\]”,“”)
替换开头标记。

正则表达式:

\[lang lang="([^"]*)" \](.*?)\[/lang\]
替换:

<span lang="$1">$2 </span> 
2美元

结尾处的空格看起来很奇怪。[lang lang=\”([^\“]*)\“\s*](.*?[[lang]Thx.最终的解决方案是:字符串结果=Regex.Replace(str,@“[lang lang=(.*)”)(.*?[[lang]),“$2”);我还没有找到在这个正则表达式中转义\”的方法,不知道。@netadictos:我的错误,对不起。在逐字逐句字符串中,引号用更多的引号转义,而不是反斜杠。