我一直试图在跳过图案时匹配线条。
我正在使用re.DOTALL
正则表达式标记。
我需要提取的是
CHINTHAPUDI<br/>
CHINTHAPUDI<br/>
来自选民姓名和父亲的名字。
我目前所掌握的是这个正则表达式:
(?:^Elector\'s Name:.*?<br/>)(.*?)^(?:Husband|Father)
但它匹配第一场比赛下方的其他Elector's Name
行。
这是我想要匹配的文件:
Elector's Name: ANANTH CHINTAPUDI<br/>
Elector's Name: THIRUPATHI <br/>
Elector's Name: SRINIVASH <br/>
CHINTHAPUDI<br/>
CHINTHAPUDI<br/>
Father's Name: POSHANNA <br/>
Father's Name: SHANKAR <br/>
Father's Name: SHANKAR <br/>
CHINTAPUDDI<br/>
CHINTHAPUDI<br/>
CHINTHAPUDI<br/>
我怎样才能从最后Elector's Name
到Father's Name
进行匹配?
答案 0 :(得分:0)
这是一个适用于您提供的输入的选项:
(?:Elector\'s Name:.*?<br/>\r?\n)+(.*?)(?:Husband|Father)
如果您使用此选项,则应考虑一个潜在问题:如果文档中较早出现Elector's Name
,则将使用第一组。请参阅demo。
此外,由于您的正则表达式尝试要求Elector's Name
和Husband
或Father
位于该行的开头,因此这是一个维护该要求的版本。如果可能的话,我会避免这种情况,因为它会导致检查速度慢得多(30倍)。
(?:\r?\nElector\'s Name:.*?<br/>)+\r?\n(.*?)\r?\n(?=Husband|Father)