python多次开发nongreedy regex来匹配特定的模式

2024-09-28 22:21:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我将为要处理的文件中给定的模式开发正则表达式

该文件包含多篇文章,它们都遵循类似的模式:

  1. 从一行开始,即换行
  2. 然后在一行上有一些非单词字符,后跟“dokumentxx vonxx”和换行符
  3. 后面是一堆人物
  4. 以两个换行结束,后跟一行非单词字符,后跟“版权”,后跟更多字符和一个新行
  5. 一个可选行,包含非单词字符,后跟多个字符和一个新行
  6. 最后一行包含非单词字符,后跟“All Rights Reserved”或“Alle Rechte vorbehalten”和新行

我试图找到一个非贪婪的正则表达式,它精确地匹配文章的开头、正文和结尾

对于1-4,我有^n\W+Dokument.+?[\r\n][\r\n]\W+Copyright[^\n]+\n

5-6需要什么

如果我打算使用这个正则表达式在一个文件中多次匹配模式,我真的需要一个dotall标志吗

我一整天都在这上面。有没有一个头脑清醒的人能告诉我缺失的部分

干杯, 安德鲁


Tags: 文件文章模式版权all字符单词reserved
1条回答
网友
1楼 · 发布于 2024-09-28 22:21:26

您可以使用以下选项:

  1. one optional line containing non-word characters followed by more characters and a new line
(\W+?(?:(?!All|Alle).)+?\n)?
  1. one line containing non-word characters followed by either "All Rights Reserved" or "Alle Rechte vorbehalten" and a new line
\W+(All Rights Reserved|Alle Rechte vorbehalten)\n

组合1-6:

^\W+Dokument.+?[\r\n][\r\n]\W+Copyright[^\n]+\n(\W+?(?:(?!All|Alle).)+?\n)?\W+?(?:All Rights Reserved|Alle Rechte vorbehalten)\n

DEMO

相关问题 更多 >