用于转义html实体的正则表达式

时间:2015-07-08 04:07:14

标签: c# .net regex

我有一个包含一些html格式标签的字符串。使用Regex.Replace()我想将标签中的所有文本转换为字符“x”,但希望保留标签。该字符串已经转义了标记。

1 个答案:

答案 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 &amp; &yen; 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。