正则表达式速查表

字面量
模式 说明
字母、数字 匹配字面量本身。比如 /f/,匹配字母 "f"
\0 匹配 NUL 字符。
\t 匹配水平制表符。
\v 匹配垂直制表符。
\n 匹配换行符。
\r 匹配回车符。
\f 匹配换页符。
\xnn 匹配拉丁字符。比如 \xOA 等价于 \n
\uxxxx 匹配 Unicode 字符。比如 \u2028 匹配行终止符,\u2029 匹配段终止符。
\cX 匹配 ctrl+X。比如 \cI 匹配 ctrl+I,等价于 \t
[\b] 匹配 Backspace 键(特殊记忆)。

正则表达式编程

第七章 正则表达式编程

什么叫知识,能指导我们实践的东西才叫知识。

学习一样东西,如果不能使用,最多只能算作纸上谈兵。正则表达式的学习,也不例外。

掌握了正则表达式的语法后,下一步,也是关键的一步,就是在真实世界中使用它。

那么如何使用正则表达式呢?有哪些关键的点呢?本章就解决这个问题。

内容包括:

正则表达式的构建

第六章 正则表达式的构建

对于一门语言的掌握程度怎么样,可以有两个角度来衡量:读和写。

不仅要看懂别人的解决方案,也要能独立地解决问题。代码是这样,正则表达式也是这样。

与“读”相比,“写”往往更为重要,这个道理是不言而喻的。

对正则的运用,首重就是:如何针对问题,构建一个合适的正则表达式?

本章就解决该问题,内容包括:

正则表达式的拆分

第五章 正则表达式的拆分

对于一门语言的掌握程度怎么样,可以有两个角度来衡量:读和写。

不仅要求自己能解决问题,还要看懂别人的解决方案。代码是这样,正则表达式也是这样。

正则这门语言跟其他语言有一点不同,它通常就是一大堆字符,而没有所谓“语句”的概念。

如何能正确地把一大串正则拆分成一块一块的,成为了破解“天书”的关键。

本章就解决这一问题,内容包括:

正则表达式括号的作用

第三章 正则表达式括号的作用

不管哪门语言中都有括号。正则表达式也是一门语言,而括号的存在使这门语言更为强大。

对括号的使用是否得心应手,是衡量对正则的掌握水平的一个侧面标准。

括号的作用,其实三言两语就能说明白,括号提供了分组,便于我们引用它。

引用某个分组,会有两种情形:在 JavaScript 里引用它,在正则表达式里引用它。

本章内容虽相对简单,但我也要写长点。

内容包括:

正则表达式位置匹配攻略

第二章 正则表达式位置匹配攻略

正则表达式是匹配模式,要么匹配字符,要么匹配位置。请记住这句话。

然而大部分人学习正则时,对于匹配位置的重视程度没有那么高。

本章讲讲正则匹配位置的相关知识点。

内容包括:

什么是位置呢?

位置(锚)是相邻字符之间的位置。比如,下图中箭头所指的地方:

PNG

正则表达式字符匹配攻略

第一章 正则表达式字符匹配攻略

正则表达式是匹配模式,要么匹配字符,要么匹配位置。请记住这句话。

然而关于正则如何匹配字符的学习,大部分人都觉得这块比较杂乱。

毕竟元字符太多了,看起来没有系统性,不好记。本章就解决这个问题。

内容包括:

两种模糊匹配

如果正则只有精确匹配是没多大意义的,比如 /hello/,也只能匹配字符串中的 "hello" 这个子串。

1
2
3
var regex = /hello/;
console.log(regex.test("hello"));
// => true

HtmlAgilityPack爬取美女图片、每日一文文章、小说

HtmlAgilityPack?

HtmlAgilityPack 是 .NET 下的一个 HTML 解析类库。支持用 XPath 来解析 HTML 。命名空间: HtmlAgilityPack

爬取美女图片核心代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
static void Main(string[] args)
{
HtmlWeb web = new HtmlWeb();
string path = @"F:\pic\";
for (int i = 88; i >= 1; i--)
{
var url = "http://jandan.net/ooxx/page-" + i;
HtmlDocument doc = web.Load(url);
List<HtmlNode> nodeList = doc.DocumentNode.SelectNodes("//*[@class=\"commentlist\"]/li").AsParallel().ToList();
foreach (var item in nodeList)
{
HtmlNode imghtml = item.SelectSingleNode(".//img");
var imgsrc = "http:" + imghtml.Attributes["src"].Value;
var imgname = Guid.NewGuid().ToString() + imgsrc.Substring(imgsrc.Length - 4, 4);
Console.WriteLine(imgsrc);
DownPic(imgsrc, path + imgname);
}
}
}
,