我试图提出一个正则表达式,它与我拥有的文本文件中的文章排列的特定模式相匹配。(注意:“|”表示段落标记/换行符,而“.”表示一些非单词字符。)这是模式
|
...........................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]
- 匹配包含“Dokument....”的行,前面是非单词字符
[\W]+Dokument \d{1,} von \d{1,}
- 匹配任意数量的换行符
[\r\n]+
- 匹配任何单词和非单词字符(即文章的文本)
[\w\W]+
- 匹配最后一个换行符(下一个模式开始前的最后一行)
[r\n]
- 匹配任何非单词字符和字符串“Alle Rechte vorbehalten”或“All Rights Reserved”
[\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)$
我已经用文本板对其进行了测试。当我使用 RE 进行向后搜索时,它匹配任何单篇文章(根据需要)。但是当我进行前向搜索时,它会匹配整个文档。
起初我认为它匹配任何文章,然后看起来它匹配所有内容。但后来我尝试了替换选项,结果我的测试词只被替换了一次。
所以RE没有做它的工作。我已经为此工作了一段时间,但找不到我的错误。
我做错了什么?- 我的 RE 有错误吗?
我打算匹配文章,将工作 RE 转换为捕获组,然后用一些 xml 替换它。但我被困在这里。
干杯,安德鲁