• 网站所有资源均来自网络,如有侵权请联系站长删除!站长QQ:1295341837

ptcms采集规则编写必备正则代码

网站制作学习 Mlingkun 2019-01-19 1866 次浏览

ptcms内置标签

[subnovelid] // floor(小说ID/1000)

[novelid] // 小说ID

[页码] // 列表采集页码

[空白] // 空白 包含换行和空格

[内容] // 等同于 .+? 匹配之间的任何字符

[数字] // 等同于 \d+ 匹配0-9数字组合


采集常用正则

.+? // 最小匹配 "." 除了换行符之外的任意字符; "+" 重复一次或一次以上; "?" 懒惰模式

\d+ // "\d" 表示匹配的是数字, "+" 表示重复一次或者多次

* // 表示重复零次或者多次

\w+ // [\w]+和\w+没有区别,都是匹配数字和字母下划线的多个字符

[\w+] // 表示匹配数字、字母、下划线和加号本身字符;

\s // "\s"是指空白,包括空格、换行、tab缩进等所有的空白,而"\S"刚好相反

\r\n // "\n"是换行,"\r"是回车。


其它说明

[]

表示数组而非排列,即不按固定次序位置排列;

在[]内的字符可以任意次序出现。

[ABC]+

可以匹配"AAABBBCCC,BBBAAACCC,BACCBACAACBAC,…",不是一定按固定A…B…C…的次序排列。

[\w./-+]+

是匹配\w [0-9a-zA-Z_] 或 . 或 / 或 - 或 + 字符;

在[./-+]内均表示字符本身;

在[]+外表示{1,}至少1次或多次;

在[.]内点,不是任意字符的意思,就是匹配点.字符本身,点.可以不需要加反斜杠.。

在[]内特殊字符,表示匹配特殊字符本身,不需要加反斜杠,

在[]外特殊字符,表示匹配特殊字符本身,必须要加反斜杠。


()用于捕获匹配的字符串,比如:a(.?)b捕获a和b之间的任何字符(除了换行符外)

而且()还用于括起正则表达式中的小组,比如:^(a|b).$匹配以a或b开头的任何字符串

另外,(?:pattern)是一个非捕获匹配,就是匹配但不捕获字符串

(?<=pattern)逆序肯定环视,表示所在位置左侧能够匹配pattern

(?<!pattern)逆序否定环视,表示所在位置左侧不能匹配pattern

(?=pattern)顺序肯定环视,表示所在位置右侧能够匹配pattern

(?!pattern)顺序否定环视,表示所在位置右侧不能匹配pattern

这些都和()是不同的概念,不要混淆

[]用于定义匹配的字符集或字符范围,比如:[a-z]匹配一个英文小写字母范围从a到z

{}用于定义匹配的次数,比如:a{1,}匹配a至少一次