A-A+

火车头网页正则提取电话 – 火车头正则采集电话号码 邮箱

2017年03月31日 09:30 学习笔记 暂无评论 阅读 510 views 次

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

话说好长时间不用火车头了。都有点蒙逼忘了。记得以前用火车头采集论坛做垃圾文章网站,都多少年前的事情了,如今需要采集一些手机号,想想懒得写PHP,有现成的工具为什么不用对吧,没毛病。

分分钟搞定,咱们先熟悉一下火车头的规则。

(?<content>[\s\S]*?)

Content     //代表内容

?        //表示匹配0次或者1次

\s       //匹配所有空白字符

\S       //匹配所有非空白字符

*         //修饰匹配次数为 0 次或任意次

 

火车头采集手机号的正则:(?<content>1[34578]{1}[0-9]{9})

火车头采集邮箱的正则:(?<content>[\w\-\.]+@[\w\-\.]+\.\w+)

--------------------下方是正则表达式说明。-----------------------

 

表1.常用的元字符代码说明

.   匹配除换行符以外的任意字符

\w   匹配字母或数字或下划线或汉字

\s   匹配任意的空白符

\d   匹配数字

\b   匹配单词的开始或结束

^   匹配字符串的开始$匹配字符串的结束

 

表2.常用的限定符代码/语法说明

*     重复零次或更多次

+    重复一次或更多次

?    重复零次或一次

{n}    重复n次

{n,}    重复n次或更多次

{n,m}    重复n到m次

 

表3.常用的反义代码代码/语法说明

\W    匹配任意不是字母,数字,下划线,汉字的字符

\S    匹配任意不是空白符的字符

\D    匹配任意非数字的字符

\B    匹配不是单词开头或结束的位置

[^x]    匹配除了x以外的任意字符

[^aeiou]    匹配除了aeiou这几个字母以外的任意字符

 

常用分组语法

表5.懒惰限定符代码/语法说明

*?    重复任意次,但尽可能少重复

+?    重复1次或更多次,但尽可能少重复

??    重复0次或1次,但尽可能少重复

{n,m}?    重复n到m次,但尽可能少重复

{n,}?   重复n次以上,但尽可能少重复

 

表7.尚未详细讨论的语法代码/语法说明

\a     报警字符(打印它的效果是电脑嘀一声)

\b    通常是单词分界位置,但如果在字符类里使用代表退格

\t    制表符,Tab

\r     回车

\v    竖向制表符

\f     换页符

\n    换行符

\e    Escape

\0nn    ASCII代码中八进制代码为nn的字符

\xnn    ASCII代码中十六进制代码为nn的字符

\unnnn    Unicode代码中十六进制代码为nnnn的字符

\cN     ASCII控制字符。比如\cC代表Ctrl+C

\A    字符串开头(类似^,但不受处理多行选项的影响)

\Z    字符串结尾或行尾(不受处理多行选项的影响)

\z     字符串结尾(类似$,但不受处理多行选项的影响)

\G     当前搜索的开头

\p{name}     Unicode中命名为name的字符类,例如\p{IsGreek}

(?>exp)     贪婪子表达式(?<x>-<y>exp)平衡组

(?im-nsx:exp)     在子表达式exp中改变处理选项

(?im-nsx)    为表达式后面的部分改变处理选项

(?(exp)yes|no)    把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no(?(exp)yes)同上,只是使用空表达式作为no

(?(name)yes|no)    如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no

(?(name)yes)     同上,只是使用空表达式作为no

标签:

给我留言