Python 使用正则表达式避免特殊字符
我正在编写一个Python脚本来从PDF用户pyPdf提取元数据 输出如下所示:Python 使用正则表达式避免特殊字符,python,regex,Python,Regex,我正在编写一个Python脚本来从PDF用户pyPdf提取元数据 输出如下所示: {'/Subject': u'Presentation from the 2011 Water Program Peer Review', '/Producer': u'Mac OS X 10.7.2 Quartz PDFContext', '/Creator': u'PowerPoint', '/ModDate': u"D:20120109085812-07'00'", '/Keywords': u
{'/Subject': u'Presentation from the 2011 Water Program Peer Review',
'/Producer': u'Mac OS X 10.7.2 Quartz PDFContext',
'/Creator': u'PowerPoint',
'/ModDate': u"D:20120109085812-07'00'",
'/Keywords': u'',
'/Title': u'Wind Wave Float',
'/CreationDate': 'D:20111030043455Z'}
我只需要标题
和主题
字段,因此打印输出最好是:
风浪飘浮,来自
因此,我可以轻松地将数据输入电子表格
有人能帮我弄点regex吗?我似乎不知道如何处理输出中所有奇怪的字符
谢谢。试试:
(?i)((?<=subject': u')[^']+|(?<=title': u')[^']+)
它基本上匹配了主题:u'
或/Title':u'
之后不是
的任何内容,请尝试以下正则表达式:
'/(Subject|Title)':\s+u('[^']+'|"[^"]+")(?=, )
描述
演示
您正在查看的输出是一本词典,因此您需要的信息已经可用。您在输出字典中看到的“u”表示字符串为Unicode格式 我认为要实现将信息输入电子表格的目标,最简单的方法是在脚本中添加以下内容: (在Python2.x中): 这将为您提供以下输出:
Wind Wave Float, Presentation from...
(将上面的outputdict替换为提供您在问题中粘贴的词典输出的任何对象)如果打印该词典对象,您的输出是什么?该词典对象是终端中打印的输出。如果您明确打印作为输出的词典,使用
打印mydictionary
?为什么需要使用正则表达式?pyPDF不是提供了可以直接访问的python对象吗?我不确定,我刚开始使用该模块,我不清楚所有的复杂之处。嘿,谢谢,这在Debuggex上非常有效,但是我在脚本中无法正确运行它。你能帮我弄清楚如何正确地输入它吗?output=re.match('therexex',string)返回一个语法错误。我不会说谎regex我知道python我不知道。在其他语言中,正则表达式本身将具有需要转义的字符,例如int c#此正则表达式的'\\.'必须是'\\.'才能转义反斜杠,或者'\.\.'可以是@'\.\.\.'将成为'\.\.\.\.'.'将转义字符串中的所有特殊字符。我相信python,你有re.escape()?它的行为似乎与我刚才描述的@相似?尝试按照以下方式做某事:x=re.escape(regex);输出=重新匹配(x,字符串)。
print outputdict['/Title'] + ", " + outputdict['/Subject']
Wind Wave Float, Presentation from...