1

我正在尝试格式化一系列测试问题,以便在 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])which 可以找到每个定义组的第一行(如上所示),直到新行/返回 - 但是,当尝试附加文本时$1Definition:,根据 Writer 的正则表达式帮助文件应该保留原始发现并附加“$ 1”之后的任何内容,它将替换一次并且不再使用随后的“替换”点击,或者$1Definition:如果使用“全部替换”按钮,则将所有内容替换为文字字符串......

我添加了一个突出显示字符串的搜索功能的屏幕截图。搜索似乎确实找到了我正在寻找的内容,并且在单击“查找全部”时会突出显示每组的第一行。

当尝试多次单击“替换”单击“全部替换”时,问题就会出现(如上所述)。

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

4

2 回答 2

0

使用 LibreOffice 执行此操作的方法是AltSearch 扩展。它旨在处理带有换行符和分段符的正则表达式。

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

然后按全部替换

alt 查找和替换 - 替换 3 次

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

于 2020-04-11T18:42:06.770 回答
0

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

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

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. 

至(将“定义:”添加到第二行):

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: $1$2

希望能帮助到你。

于 2020-04-11T08:24:17.837 回答