c# 正则问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:00:48
rawtext = new Regex(@"<(?<first>.*?)>\s+<(?<second>.*?)>", RegexOptions.IgnoreCase | RegexOptions.Multiline).Replace(rawtext, "<${first}><${second}>");

这句 什么意思 帮忙解释下
还有一问题

http://zhidao.baidu.com/question/105468996.html

咦?一楼那个是专家么?\s匹配的是空白字符,不是任意文字哈。

首先说目的:是将形如<td>和<td>之间的空格去掉,并且只有中间全部为空格的时候才能去掉,当然两边的限定标记不局限于td哈,<tr> </tr>这样的也行,只要是<>这样的就行,并且不区分大小写而且可以多行匹配。
<td> <td> ---这样,满足替换条件
<td> char<td> ---这样,只要中间有\S类型的东东,则无法替换
(?<first>.*?) --这个的意思是把正则.*?作为一个组,并且给它一个名字,叫first,以便在后面可以引用,比如${first}这个,就是引用它了,(?<second>.*?)类似哈,属性RegexOptions.IgnoreCase表示匹配规则是忽略大小写,RegexOptions.Multiline表示匹配规则可以使多行的

替换掉<><>标记之间的文字

rawtext = new Regex(@"<(?<first>.*?)>\s+<(?<second>.*?)>", RegexOptions.IgnoreCase | RegexOptions.Multiline) 这里是创建一个Regex正则对象 @***是正则表达式 RegexOptions.IgnoreCase 表示忽略大小写。
假设Reg是Regex对象 Regex Reg = new Regex(@"ab",RegexOptions.IgnoreCase);
Reg.Replace(StringSource,newString);就表示调用Regex对象的Replace方法 StringSource表示需要被替换的字符串,比如是"aabbcc",newString 是用来替换老字符串的字符串. 则实行结果就是 用 newString替换StringSource内部符合正则@"ab"