在家憋着也是憋着,汇总一下学的正则表达式的内容吧。内容是个人理解,作为笔记。
基本理解
正则表达式一般用来对字符串内的字符进行搜索过滤,常见的可用于爬虫中过滤出有效的地址字符。
使用的主要思路是,先通过语法中定义的通配符,找出目标字符A所在的大概范围,然后使用分组构造的语法,也就是(?<>)
,将真正的目标字符A划分到分组中。
然后,在从结果中,将存储在分组中的字符A读出,使用。
例子
如果获得了一个html网页的内容,其字符串如下
<head>
<meta charset="utf-8">
<title>C# 网页图片爬虫</title>
</head>
要想从中获得title的文字C# 网页图片爬虫
。
先写一个大致定位的表达式,然后效果如下。下面截图中的软件是偶然找到的一个小工具,对学习正则非常有效。想用的点这里
<title>.*</title>
在找到位置后,需要获得其中的文字信息,就可以利用分组功能修改上面的正则表达式,修改后的如下
<title>(?<name>.*)</title>
这是就获得子集name,其中就保存了文字信息。
在C#中使用正则表达式
在C#中使用正则表达式,需要使用到内置的对象Regex。这里给个例子,代码也是来自网络。
public static string[] GetNameUrls(string sHtmlText,string regex)
{
// 定义正则表达式用来匹配
Regex m_hvtRegImg =
new Regex(regex,RegexOptions.IgnoreCase);
// 搜索匹配的字符串
MatchCollection matches = m_hvtRegImg.Matches(sHtmlText);
int m_i = 0;
string[] sUrlList = new string[matches.Count];
// 取得匹配项列表
foreach (Match match in matches)
sUrlList[m_i++] = match.Groups["name"].Value;
return sUrlList;
}
2020-03-19 14:16:35 星期四
追加一些参考文章
https://www.cnblogs.com/zhangxiaoyong/p/6043283.html
版权属于:CraZyMoNk
本文链接:https://blog.peacharc.com/archives/514.html
转载时须注明出处及本声明