我正在寻找regex repalce命令来替换特定的字符串。假设我希望在HTML代码中将ss
替换为<u>ss</u>
。
因此,如果我的输入为<p style="">ss</p>
,我希望看到输出<p style=""><u>ss</u></p>
但我不想要像
这样的词 <b>Issues</b>
被替换为<b>I<u>ss</u>es</b>
所以我需要检查它是否是一个完整的单词或单词的一部分。
我想要regex.replace
">ss<"
&amp; > ss <
有没有更好的解决方案?
答案 0 :(得分:2)
不考虑正则表达式不是HTML使用的最佳工具,您可以使用\bss\b
表达式来确保在匹配的字符串之前和之后有一个单词边界。
答案 1 :(得分:1)
更好的解决方案是使用HTML解析器库,解析html并替换标签。 结帐HTML Agility Pack
话虽如此,如果您仍然坚持使用正则表达式,因为您知道您的数据是特定格式,那么遵循正则表达式就足以满足您的需求。
[>]\s?ss\s?[<]
答案 2 :(得分:1)
你不应该使用Regex来解析html,regex是为常规语言设计的,其中HTML是无上下文的。
我强烈建议HTML Dom Parser
答案 3 :(得分:1)
string input = "<p style="">ss</p> <b>Issues</b>";
string pattern = "(?<=\>)ss(?=\<)";
string replacement = "<u>ss</u>";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
Console.WriteLine("Original String: {0}", input);
Console.WriteLine("Replacement String: {0}", result);
答案 4 :(得分:1)
这样的简单解决方案怎么样:
public string ReplaceHtmlTagContent(string value, string search) {
return value.Replace(">" + search + "<", "><u>" + replace + "</u><")
}
答案 5 :(得分:0)
我不确定我到底知道你想要什么,但这有什么不对:
dataString = dataString.Replace(">ss<", "><u>ss</u><").Replace("> ss <", "><u> ss </u><");