在 LibreOffice Writer 中使用正则表达式将字符串附加到下一行会导致失败或完全替换

Using regex in LibreOffice Writer to appending a string to the next line results in a failure or full replacement instead

我正在尝试格式化一系列测试问题,以便在 LibreOffice Writer 的在线课程中实施。最近更改了测试问题格式,我必须在实施前将所有 500 多个问题更新到文本文件中。

目前的问题是这样的:

1. alter verb (awl-ter) 
to change; become different or modified
■Example: The design of the king’s suit was altered to suit his taste.
□Note: Can be confused with altar , alter. 

我们需要将格式更改为如下所示:

Word: alter verb (awl-ter) 
Definition: to change, become different or modified 
Example: The design of the king’s suit was altered to suit his taste. 
Possible Exam Question: Can be confused with altar , alter. 

我知道的正则表达式足以自动格式化大部分行,但定义行除外。我特别需要在 "Word" 行之后的行首添加单词 "Definition:",但我似乎无法弄清楚如何正确执行此操作。

我尝试使用 (\b\d+\.\s\w.*[\r\n]) 可以找到每个定义组的第一行(如上所示),直到新行 / return - 但是,当尝试附加使用 Definition: 的文本,根据 Writer 的正则表达式帮助文件,该文本应保留原始发现并附加在“$1”之后的任何内容,它将替换一次并且在随后的 "replace" 点击后不再工作,或者将替换如果使用 "replace all" 按钮...

我添加了 search function highlighting the string 的屏幕截图。搜索似乎确实找到了我要查找的内容,并且会在单击 "find all".

时突出显示每组的第一行

当尝试 click "replace" more than once or click "replace all".

时,问题出现了(如上所述)

我目前不知道问题是什么/如何解决这个问题。似乎我的正则表达式以某种方式破坏了搜索查询和输出。

根据评论,将其写为答案。

对于给定的问题如何改变...

1. alter verb (awl-ter) 
to change; become different or modified
■Example: The design of the king’s suit was altered to suit his taste.
□Note: Can be confused with altar , alter. 

至(在第二行添加'Definition: '):

1. alter verb (awl-ter) 
Definition: to change; become different or modified
■Example: The design of the king’s suit was altered to suit his taste.
□Note: Can be confused with altar , alter. 

...虽然 LibreOffice Writer 的正则表达式似乎不喜欢多行匹配,但您可以使用其他编辑器,例如 VSCode...

或括号 (Google Brackets.io)...

替换前:

之后:

如果您决定使用其他编辑器,请尝试正则表达式...

(^.*?)([.|\n]+■Example:)

并替换为...

Definition: 

希望对您有所帮助。

使用 LibreOffice 的方法是 AltSearch extension。它旨在处理带有换行符和段落符的正则表达式。

Search for: (\b\d+\.\s\w.*)$
Replace: \nDefinition: 

然后按全部替换

我试过时,默认选中仅当前选择,因此您可能需要取消选中它。此外,我发现 $ 有效,但 \p 可用于匹配段落分隔符。