如何从此替换以下字符串:
"Hello @app@username@, my name is @app@name@."
要
"Hello <span>@app@username@</span>, my name is <span>@app@name@</span>."
有大量的应用程序变量@app@variable@
。
答案 0 :(得分:6)
此代码在每个变量周围添加<span></span>
个标记。
string input = "Hello @app@username@, my name is @app@name@.";
string result = Regex.Replace(input, "[@][a-z@]+[@]", s => "<span>" + s.Value + "</span>");
<强>更新强>
正如WiktorStribiżew所提到的,甚至有一种更短的写作方式:
string result = Regex.Replace(input, "[@][a-z@]+[@]", "<span>$&</span>");
答案 1 :(得分:-1)
您可以使用模式:
@[A-Za-z]+@[A-Za-z]+@
并将其替换为:
string input = "Hello @app@username@, my name is @app@name@.";
string result = Regex.Replace(input, "@[A-Za-z]+@[A-Za-z]+@", match => "<span>" + match.Value + "</span>");
请注意,如果匹配项始终采用以下格式:@app@someotherword@
,您可以使用正则表达式:
@app@[A-Za-z]+@
在@WiktorStribiżew评论中,您还可以使用$&
反向引用来执行替换:
Regex.Replace(input, "@[A-Za-z]+@[A-Za-z]+@", "<span>$&</span>");