原创日志

c# 正则表达式中遇到的问题,@符号下无法匹配识别双引号

[ 2014-05-19 13:02:45 | 作者: admin ]
字号: | |
ps:这个跟是否在正则中无关,如果字符串前不加@,那么在字符串中用\"对"转义,如果字符串前面加了@,那么在字符串中用""对"转义

假如某个网页的源代码中有如下一段:
<span class="img">图片1</span>

使用@符号,匹配字符串为:
@"<span\s+class=""img"">([\S\s]*?)</span>"

不使用@符号,则匹配字符串为:
"<span\\s+class=\"img\">([\\S\\s]*?)</span>"



注意:因为有了@符号来取消转义,可以看到里面的双引号无法使用\来实现转义,必须加双引号实现转义,即 "" 才能匹配到内容






参考:
====================================================
@符号有几个作用
1.假设str是一个路径名称的话,在我们的路径中通常都有“\”符号,而这个符号又是一个转义字符,如果不加@符号的话,那么你不得不把路径中的“\”进行处理,但是这样造成工作量大,所以使用这个@符号就不需要转义路径中的特殊字符了。
2、@符号可以是str中的字符显示,有换行功能。
[最后修改由 admin, 于 2014-05-19 13:19:13]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2190

这篇日志没有评论。

此日志不可发表评论。