我有一个正则表达式,可以扫描html文件中的一些数据 代码正在使用BeautifulSoup删除html标记,并返回以下文本(只是文本的一部分):
/学期: 2011/1 编号: 20112222年
姓名: XXXX XXXX XXXX XXXX 顾问
我的代码示例:
import re,glob,os
from bs4 import BeautifulSoup
import nltk
path = 'C:\\xampp\\htdocs\\data_tools\\transcripts'
os.chdir(path)
delch=','
def scantext(text,snum) :
re_semstudent = re.compile("Semester:\s*(\d*)\s*\/\s*(\d)\s*Number\s*:\s*(\d{8})\s*Name\s*:\s*(.*)\s*Advisor")
semesters = text.split("Year")
for ind in range(1,len(semesters)):
s = semesters[ind]
x = re.search(re_semstudent,s)
if x :
year=x.group(1)
semester=x.group(2)
studentid=x.group(3)
studentname=x.group(4)
print year+"#"+semester
return 0
ii=1
for fname in glob.glob("*.html") :
f = open (fname)
text = BeautifulSoup(f.read(), 'html.parser').getText()
scantext(text,ii)
当我尝试检索文本作为固定字符串,工作正常!
但是当我在scantext函数中发送文本并使用semesters = text.split("Year")
时。我可以打印每个分割的文本,但是正则表达式不能匹配任何值!你知道吗
您需要^{} 标志:
如果你追着它跑,它会给你一些东西,比如:
您可能还需要使用
encoding="utf-8"
打开文件:相关问题 更多 >
编程相关推荐