我正在使用Scrapy编写一个Web爬虫,因此我获得了一组URL,如:[Dummy URL] * http://matrix.com/en/Zion
http://matrix.com/en/Machine_World
http://matrix.com/en/Matrix:Banner_guidelines
http://matrix.com/en/File:Link_Banner.jpg
http://matrix.com/wiki/en/index.php *
在scrapy的规则中,我想添加一个正则表达式,只允许使用“http://matrix.com/en/Machine_World”或“http://matrix.com/en/Zion”类型的网址 即包含“http://matrix.com/en/< [a-zA-Z,_]>”之外的任何内容的网址绝不允许。
约束:
答案 0 :(得分:1)
即包含集合之外的任何内容的网址" http://matrix.com/en/< [a-zA-Z,_]>"绝不允许。
您是否尝试在正则表达式中使用此字符类?看起来你不包括下划线。
尝试
[a-zA-Z,_]+
加号表示"一个或多个" - 这与{1,}只是一个很好的速记相同:)
如果您想要排除.php或.jpg的项目,请随意添加$符号,如下所示:
[a-zA-Z,_]+$
$表示"行尾"意味着您的匹配序列必须运行到行尾。由于fullstops不包含在字符类中,因此将排除这些选项
如果有效,请告诉我, 埃利奥特
答案 1 :(得分:0)
建议的正则表达式有效的可重复证据:
grep("matrix.com\\/en\\/[a-zA-Z,_]+$", x, perl=TRUE, value=TRUE)
#[1] "http://matrix.com/en/Zion"
#[2] "http://matrix.com/en/Machine_World"
数据强>
x <- c("http://matrix.com/en/Zion", "http://matrix.com/en/Machine_World",
"http://matrix.com/en/Matrix:Banner_guidelines",
"http://matrix.com/en/File:Link_Banner.jpg",
"http://matrix.com/wiki/en/index.php")