Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Python 3.6中正则表达式搜索的用法_Regex_Python 3.6 - Fatal编程技术网

Regex Python 3.6中正则表达式搜索的用法

Regex Python 3.6中正则表达式搜索的用法,regex,python-3.6,Regex,Python 3.6,我使用的是Python3.6,我已经将数千个文本文档作为字符串从PDF文件扫描到Python3字典中。每个文档都是单个字符串的单独词典条目。我试图使用正则表达式搜索从每个页面提取姓名和地址信息。我已经确定姓氏的前面总是有“Room#______________;”和后面的“last/”我已经尝试过这样做,但它似乎不起作用。我对lookaround结构一点都不熟悉。有人能告诉我哪里做错了吗?我的最终代码将有几个这样的搜索,这只是第一个 memberRecord = memberData[1] me

我使用的是Python3.6,我已经将数千个文本文档作为字符串从PDF文件扫描到Python3字典中。每个文档都是单个字符串的单独词典条目。我试图使用正则表达式搜索从每个页面提取姓名和地址信息。我已经确定姓氏的前面总是有“Room#______________;”和后面的“last/”我已经尝试过这样做,但它似乎不起作用。我对lookaround结构一点都不熟悉。有人能告诉我哪里做错了吗?我的最终代码将有几个这样的搜索,这只是第一个

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))