在家憋着也是憋着,汇总一下学的正则表达式的内容吧。内容是个人理解,作为笔记。

基本理解

正则表达式一般用来对字符串内的字符进行搜索过滤,常见的可用于爬虫中过滤出有效的地址字符。

使用的主要思路是,先通过语法中定义的通配符,找出目标字符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

Last modification:March 19, 2020
如果觉得文章对你有用,请随意赞赏