[英]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.