[英]Match between lines while skipping pattern with Regex
我一直在嘗試跳過模式時在行之間進行匹配。 我正在使用re.DOTALL
regex標志。
我需要提取的是
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
我該如何匹配?
這是一個適用於您提供的輸入的選項:
(?:Elector\\'s Name:.*?<br/>\\r?\\n)+(.*?)(?:Husband|Father)
如果使用此方法,則應考慮一個潛在的問題:如果Elector's Name
出現在文檔的前面,則將使用第一組。 參見演示 。
另外,由於您的正則表達式嘗試要求在行首添加Elector's Name
和Husband
或Father
,所以這里是一個保留該要求的版本。 如果可能的話,我會避免這種情況,因為它會導致檢查(30x)慢得多。
(?:\\r?\\nElector\\'s Name:.*?<br/>)+\\r?\\n(.*?)\\r?\\n(?=Husband|Father)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.