[英]regular expression: match anything between specific pattern
我試圖提出一個與特定模式匹配的正則表達式,通過該正則表達式可以排列文本文件中的文章。 (注意:“ |”表示段落標記/換行符,而“。”表示一些非單詞字符。)這是模式
|
...........................Dokument.1.von.55|
|
|
|
..........................Some newspaper|
|
..........................Freitag 08. Mai 2015
|
sometextsometextsometextsometextsometextsometextsometextsometextsometextsometext
sometextsometextsometextsometextsometextsometextsometextsometextsometextsometext
(etc..)
|
METAINFO1: IWOIOWIEOWEIWOEIWEO
|
(etc... possibly more metainfo all capitalized)
|
|
.........................Copyright 2015 some publisher notes
.........................at most one more single line containing copyright information
.........................Alle Rechte vorbehalten|
# note: last line alternatively: All Rights Reserved
|
(next pattern i.e. article)
(出於版權目的,我不得不將其匿名化)
我創建了以下正則表達式來提取單個文章:
^[\\r\\n]
[\\W]+Dokument \\d{1,} von \\d{1,}
[\\r\\n]+
[\\w\\W]+
[r\\n]
[\\W]+(Alle Rechte vorbehalten|All Rights Reserved)
$
因此,整個RE為^[\\r\\n][\\W]+Dokument \\d{1,} von \\d{1,}[\\r\\n]+[\\w\\W]+[\\r\\n][\\W]+(Alle Rechte vorbehalten|All Rights Reserved)$
我已經用Textpad測試過了。 當我使用RE進行向后搜索時,它會匹配任何單個文章(根據需要)。 但是,當我進行正向搜索時,它會匹配整個文檔。
起初,我認為它與任何文章都匹配,然后看起來好像是否與所有內容都匹配。 但是后來我嘗試了replace選項,結果是我的測試術語只被替換了一次。
因此,可再生能源不履行職責。 我已經為此工作了一段時間,但找不到我的錯誤。
我做錯了什么? -我的RE有錯誤嗎?
我打算匹配文章,將工作中的RE變成一個捕獲組,然后將其替換為一些xml。 但是我被困在這里。
干杯,安德魯
訣竅是使與文章正文匹配的部分不貪心 ,並為文章明確定義開始和結束匹配。
re.compile(r'^\n\W+Dokument.+?\n\W+Copyright[^\n]+\n(?:[^\n]+\n)?', flags=re.S)
僅重申一下假設:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.