您的位置:首页 > 其它

正则表达式匹配中文字符及标点

2015-07-13 11:36 585 查看
可以写成这样

string strRegex = @"[\u4e00-\u9fa5]|[\(\)\《\》\——\;\,\。\“\”\<\>\!]";

其中前半部分表示匹配中文字符,后半部分为需要匹配的标点符号。

另,

对于html源码的处理,建议使用HtmlAgilityPack,用下面的代码去掉其中的脚本、样式或者注释内容。

public static HtmlDocument InitializeHtmlDoc(string htmlString)
{
if (string.IsNullOrEmpty(htmlString))
{
return null;
}

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlString);
doc.DocumentNode.Descendants().Where(n => n.Name == "script" || n.Name == "style" || n.Name == "#comment").ToList().ForEach(n => n.Remove());

return doc;
}

HtmlAgilityPack是使用XPath语法,"//comment()"在XPath中表示“所有注释节点”,“#comment”不好用的话需要替换。/article/4807472.html

从Url读取网页内容(静态),可以用下面的代码

public static string GetHtmlStr(string url)
{
if (string.IsNullOrEmpty(url))
{
return string.Empty;
}

string html = string.Empty;
try
{
WebRequest webRequest = WebRequest.Create(url);
webRequest.Timeout = 30 * 1000;
using (WebResponse webResponse = webRequest.GetResponse())
{
if (((HttpWebResponse)webResponse).StatusCode == HttpStatusCode.OK)
{
Stream stream = webResponse.GetResponseStream();
string coder = ((HttpWebResponse)webResponse).CharacterSet;

StreamReader reader = new StreamReader(stream, string.IsNullOrEmpty(coder) ? Encoding.Default : Encoding.GetEncoding(coder));
html = reader.ReadToEnd();
}
}
}
catch (Exception ex)
{
//Request may timeout sometimes
}

return html;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: