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至少一次
已有 3377 位网友参与,快来吐槽:
发表评论