如何制作正则表达式模式?

时间:2012-06-28 07:01:59

标签: c#

我有一个像下面这样的html文件:(我是正则表达式模式的新手)

<a href=":$451$142">some thing</a>
<a href=":$14$15">some thing</a>                                
<a href=":$3$16">some thing</a>                     
<a href=":$312$17">some thing</a>

如何用“#”替换所有“:$ Number $ Number”?

1 个答案:

答案 0 :(得分:0)

这个正则表达式应该有效:

       String str = @"<a href="":$451$142"">some thing</a>  "+
                    @" <a href="":$14$15"">some thing</a>   "+                             
                    @" <a href="":$3$16"">some thing</a>    "+                 
                    @" <a href="":$312$17"">some thing</a>  ";
       String newStr = Regex.Replace(str,@":\$\d+\$\d+", "#");
       System.Console.WriteLine(str);
       System.Console.WriteLine("\n\n" + newStr);

它产生:

<a href=":$451$142">some thing</a>   <a href=":$14$15">some thing</a>    <a href
=":$3$16">some thing</a>     <a href=":$312$17">some thing</a>


<a href="#">some thing</a>   <a href="#">some thing</a>    <a href="#">some thin
g</a>     <a href="#">some thing</a>

正则表达式::\$\d+\$\d+将匹配以:开头的任何文本,后跟$$是正则表达式语言中的特殊字符因此需要在前面额外\进行转义。 $后面还需要跟一个或多个数字(\d+),后面跟着另一个:,后跟一个或多个数字\d+ })。有关详细信息,请查看this教程。

虽然在这种情况下正则表达式确实有帮助,但强烈建议您不要使用它们来解析语言。请使用HTML Agility Pack等专用框架来执行任何与HTML相关的过程。看看here,看一个类似于你想要做的例子。