[英]Creating a regex to match the following scenario
我是一名從事小型研究項目的學生,我需要抓取符合以下要求的網頁:- 如果在文本中的任何位置找到單詞 X 說“abc”,請查找模式 Y,如果它出現在其中,則說“pqr”在 X 出現的兩側有一個 25 個字符的窗口。
pqrxyz
有效。
xyz
無效。
xyzpqr
有效。
pqr123456789123456789123456789xyz
無效。
我想不通。 任何幫助將不勝感激。
((?=pqr).{20,}abc) | (pqr{20,}(?!abc))
這是我迄今為止的嘗試。 我不知道如何合並 20 個字符的窗口約束。
.
是“任何單個字符”的正則表達式。
{n,m}
是“至少 n,不超過 m,重復前一個正則表達式”的正則表達式。
因此,正則表達式xyz.{0,25}pqr
表示“ xyz
,后跟最多 25 個字符,后跟pqr
”。
因此,考慮到pqr
在xyz
之前或之后發生的可能性,我們得到這行 python 代碼:
if re.search('pqr.{0,25}xyz', line) or re.search('xyz.{0,25}pqr', line):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.