我试着抓取fileID,完成的是grabFile函数,然后计数句子,由sentcount语句完成。现在我所有的句子数都是0。我刚查过。问题是我的抓取器不是为我抓取摘要。谁能帮我检查一下代码,告诉我有什么问题吗?谢谢。在
grabFile=re.findall(r'File\s+\:\s+(\w\d{7})',mytext)
if len(grabFile) == 0:
matchFile= "N/A"
else:
matchFile = grabFile[0]
newtext=re.sub(r'\n','',mytext)
newtext=re.sub(r'\s+','',newtext)
grabAbs=re.findall(r'Abstract\s+\:(\w.+)',newtext)
if len(grabAbs) == 0:
matchAbs= "N/A"
else:
matchAbs = grabAbs
#filesents={}
sentcount=0
for each in matchAbs.split('\.'):
if each =='N/A':
sentcount=0
else:
sentcount +=1
print sentcount, matchFile
其中一份文件的摘要文本(a95000006):
Abstract :
9500006 Wang This award for a Grant Opportunity for Academic Liaison with Industry (GOALI) research project will develop a new methodology for reducing geometric variation in aluminum automotive space frames.'
这行的正则表达式grabAbs=re.findall(r'Abstract\s+\:(\w.+)',newtext)
假设“Abstract”和冒号“:”之间始终至少有一个空白字符 如果我写的是摘要,我会在摘要后面加上冒号。如果将“\s+”更改为“\s*”,则允许冒号前面没有空格。试试看能不能解决你的问题。 编辑 在看到示例输入之后,问题更可能是冒号后面有一个换行符,而且您没有在正则表达式上设置多行搜索标志。试试这个:编辑
@jammon指出,我提到的那一行上面的行删除了所有空格。因此,冒号前的空格将被删除。另外,上面删除所有换行符的行。因为冒号后面的换行符被删除,所以捕获组中的
^{pr2}$\w
不能匹配。也许捕获组应该是(.+)
,如下所示:相关问题 更多 >
编程相关推荐