簡體   English   中英

在行之間匹配,同時使用正則表達式跳過模式

[英]Match between lines while skipping pattern with Regex

我一直在嘗試跳過模式時在行之間進行匹配。 我正在使用re.DOTALL regex標志。

我需要提取的是

CHINTHAPUDI<br/>
CHINTHAPUDI<br/>

在選舉人姓名和父親姓名之間。

我目前聚集的是這個正則表達式:

(?:^Elector\'s Name:.*?<br/>)(.*?)^(?:Husband|Father)

但它會與第一個匹配項下方的其他Elector's Name行匹配。

鏈接到我的regex101

這是我要匹配的文檔:

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 NameFather's Name我該如何匹配?

這是一個適用於您提供的輸入的選項:

(?:Elector\\'s Name:.*?<br/>\\r?\\n)+(.*?)(?:Husband|Father)

如果使用此方法,則應考慮一個潛在的問題:如果Elector's Name出現在文檔的前面,則將使用第一組。 參見演示

另外,由於您的正則表達式嘗試要求在行首添加Elector's NameHusbandFather ,所以這里是一個保留該要求的版本。 如果可能的話,我會避免這種情況,因為它會導致檢查(30x)慢得多。

(?:\\r?\\nElector\\'s Name:.*?<br/>)+\\r?\\n(.*?)\\r?\\n(?=Husband|Father)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM