我有一个包含一些html格式标签的字符串。使用Regex.Replace()我想将标签中的所有文本转换为字符“x”,但希望保留标签。该字符串已经转义了标记。
答案 0 :(得分:0)
据我了解您的问题,以下代码将解决您的问题:
string str = @"Hi, how are you. hope you are doing good";
Regex.Replace(str, @"[a-zA-Z0-9]", "z");
输出:
zz, zzz zzz zzz. zzzz zzz zzz zzzzz zzzz
如果您不想用z
替换单词中出现的数字,请删除0-9
。如果您希望将单词中的任何其他字符替换为z
,请将其包括在内。例如,[a-zA-Z\-]
将在正则表达式中包含-
,并将其替换为z
。在Regex中,请注意,为了匹配特殊字符,它应该以{{1}}开头。例如,要匹配\
,它应该像[
。
希望这会有所帮助。
<强>更新强>
我找到了你。您的问题的解决方案是:
\[
而且,输出是:
string str = @"Hi, how are you. hope are you doing good & ¥ whatis goind on &lessthan;and";
MatchCollection matches = Regex.Matches(str, @"\b(?!&)[a-zA-Z]+(?!;)\b");
foreach (Match m in matches)
{
string oldWord = m.ToString();
str = Regex.Replace(str, oldWord, Regex.Replace(m.ToString(), @".", "z"));
}
Console.WriteLine(str);
注意:如果你想使用HTML来转换/提取一些字符或模式,那就没关系了。但是,如果你打算用REGEX解析整个HTML,那就不要了试着这样做。因为HTML是非常规语言。并且REGEX没有能力解析HTML。