使用正则表达式时得到不正确的匹配
Getting incorrect match while using regular expressions
我正在尝试查找 link 的末尾是否包含“.pdf”。
我在正则表达式中使用 [/w/-]+
跳过“.pdf”之前的所有字符,然后查看它是否包含“.pdf”。我是正则表达式的新手。
密码是:
import urllib2
import json
import re
from bs4 import BeautifulSoup
url = "http://codex.cs.yale.edu/avi/os-book/OS8/os8c/slide-dir/"
response = urllib2.urlopen(url)
soup = BeautifulSoup(response.read())
links = soup.find_all('a')
for link in links:
name = link.get("href")
if(re.match(r'[\w/.-]+.pdf',name)):
print name
我想将姓名与以下 link 类型匹配:
PDF-dir/ch1.pdf
我对你的代码做了一点小改动
for link in links:
name = link.get("href")
if(re.search(r'\.pdf$',name)):
print name
输出如下:
PDF-dir/ch1.pdf
PDF-dir/ch2.pdf
PDF-dir/ch3.pdf
PDF-dir/ch4.pdf
PDF-dir/ch5.pdf
PDF-dir/ch6.pdf
PDF-dir/ch7.pdf
PDF-dir/ch8.pdf
PDF-dir/ch9.pdf
PDF-dir/ch10.pdf
PDF-dir/ch11.pdf
PDF-dir/ch12.pdf
PDF-dir/ch13.pdf
PDF-dir/ch14.pdf
PDF-dir/ch15.pdf
PDF-dir/ch16.pdf
PDF-dir/ch17.pdf
PDF-dir/ch18.pdf
PDF-dir/ch19.pdf
PDF-dir/ch20.pdf
PDF-dir/ch21.pdf
PDF-dir/ch22.pdf
PDF-dir/appA.pdf
PDF-dir/appC.pdf
您不需要正则表达式。使用 CSS selector 检查 href
是否以 pdf
:
结尾
for link in soup.select("a[href$=pdf]"):
print(link["href"])
我正在尝试查找 link 的末尾是否包含“.pdf”。
我在正则表达式中使用 [/w/-]+
跳过“.pdf”之前的所有字符,然后查看它是否包含“.pdf”。我是正则表达式的新手。
密码是:
import urllib2
import json
import re
from bs4 import BeautifulSoup
url = "http://codex.cs.yale.edu/avi/os-book/OS8/os8c/slide-dir/"
response = urllib2.urlopen(url)
soup = BeautifulSoup(response.read())
links = soup.find_all('a')
for link in links:
name = link.get("href")
if(re.match(r'[\w/.-]+.pdf',name)):
print name
我想将姓名与以下 link 类型匹配:
PDF-dir/ch1.pdf
我对你的代码做了一点小改动
for link in links:
name = link.get("href")
if(re.search(r'\.pdf$',name)):
print name
输出如下:
PDF-dir/ch1.pdf
PDF-dir/ch2.pdf
PDF-dir/ch3.pdf
PDF-dir/ch4.pdf
PDF-dir/ch5.pdf
PDF-dir/ch6.pdf
PDF-dir/ch7.pdf
PDF-dir/ch8.pdf
PDF-dir/ch9.pdf
PDF-dir/ch10.pdf
PDF-dir/ch11.pdf
PDF-dir/ch12.pdf
PDF-dir/ch13.pdf
PDF-dir/ch14.pdf
PDF-dir/ch15.pdf
PDF-dir/ch16.pdf
PDF-dir/ch17.pdf
PDF-dir/ch18.pdf
PDF-dir/ch19.pdf
PDF-dir/ch20.pdf
PDF-dir/ch21.pdf
PDF-dir/ch22.pdf
PDF-dir/appA.pdf
PDF-dir/appC.pdf
您不需要正则表达式。使用 CSS selector 检查 href
是否以 pdf
:
for link in soup.select("a[href$=pdf]"):
print(link["href"])