Regex Python 3.6中正则表达式搜索的用法
我使用的是Python3.6,我已经将数千个文本文档作为字符串从PDF文件扫描到Python3字典中。每个文档都是单个字符串的单独词典条目。我试图使用正则表达式搜索从每个页面提取姓名和地址信息。我已经确定姓氏的前面总是有“Room#______________;”和后面的“last/”我已经尝试过这样做,但它似乎不起作用。我对lookaround结构一点都不熟悉。有人能告诉我哪里做错了吗?我的最终代码将有几个这样的搜索,这只是第一个Regex Python 3.6中正则表达式搜索的用法,regex,python-3.6,Regex,Python 3.6,我使用的是Python3.6,我已经将数千个文本文档作为字符串从PDF文件扫描到Python3字典中。每个文档都是单个字符串的单独词典条目。我试图使用正则表达式搜索从每个页面提取姓名和地址信息。我已经确定姓氏的前面总是有“Room#______________;”和后面的“last/”我已经尝试过这样做,但它似乎不起作用。我对lookaround结构一点都不熟悉。有人能告诉我哪里做错了吗?我的最终代码将有几个这样的搜索,这只是第一个 memberRecord = memberData[1] me
memberRecord = memberData[1]
memberRegex = re.compile(r'''(
(?<=Room #______)\w+(?=Last)
$
)''', re.VERBOSE)
mo = memberRegex.search(memberRecord)
memberRecord=memberData[1]
memberRegex=re.compile(r''(
(?在文件室#uuuuuuuu
、您的word和最后一个
之间,您不需要考虑任何空格或非单词字符。在通过mo.group(1)
找到匹配项后,可以访问您需要的值:
请注意,re.DOTALL
标志将允许
跨行匹配,*?
惰性量词将尽可能少地匹配任何字符,直到第一个最后一个。如果需要找到最后一个最后一个
,请将*?
替换为*
(贪婪量词版本).你不需要考虑房间
、你的单词和最后一个
。试试房间.\uuuuuuuuuuuuuuuuu(.*)最后一个
当找到匹配项时,抓取mo.group(1)
。谢谢你的Wiktor。我试图把它弄得太复杂了!这奏效了:memberRegex=re.compile(r'(房间号#(最后一个))mo=memberRegex.search(memrec)print(mo.group(2))
memberRegex = re.compile(r'Room #______(.*?)Last', re.DOTALL)
mo = memberRegex.search(memberRecord)
if mo:
print(mo.group(1))