正则表达式将 txt 文件中包含的段落格式化为单独的字符串



我有一个包含 10,000+ 个短"段落"的 txt 文件,我一直在使用 vscode 中的查找和替换功能来尝试匹配每个段落,但如果 javascript 中有更有效的方法,我很感兴趣。

本质上,我想将每个段落都放在""之间用空行分隔,使它们成为可用的字符串。通常,这些"段落"的性质并不是语言上下文中的段落。它们实际上只是我从具有多个组和类别的对象列表中隔离出来的对象。但是它们必须被视为段落,因为一些剩余的情况应该包含在对象组中,因此我想在单个字符串中捕获任何文本行分组,而不是每行单独的字符串。

下面是 txt 文件的示例。

Description: Corsican


Description: Cree


Description: Czech


Description: Church Slavic
Description: Church Slavonic
Description: Old Bulgarian
Description: Old Church Slavonic
Description: Old Slavonic


Description: Chuvash


Description: Welsh


Description: Danish


Description: German


Description: Dhivehi
Description: Divehi
Description: Maldivian


Description: Dzongkha


Description: Ewe


Description: Modern Greek (1453-)


Description: English


Description: Esperanto


Description: Spanish
Description: Castilian


Description: Estonian



Description: Basque


Description: Persian

间距不一致,因为只是删除了对象列表中的其他内容。我知道vscode的查找和替换可以支持多行正则表达式,所以也许可以使用。或者也许这项工作可以用纯javascript完成。任何帮助将不胜感激,谢谢。

您可以将下面的正则表达式用于上述目的:

^(?:[w:-() ]+)$

上述正则表达式的说明:

^- 表示测试字符串开始的起始分隔符。

?:- 表示非捕获组。

[\w:-(( ]- 表示要包含的字符类以及-((空格。您可以根据需要包含其他符号。

+- 表示与出现次数匹配一次或多次的量词。

$- 表示测试字符串结尾的结束分隔符。

您可以在此处查看上述正则表达式的演示。

在 JAVASCRIPT 中的实现:

const myRegexp = /^(?:[w:-() ]+)$/gm;
const myString = `Description: Corsican


Description: Cree


Description: Czech


Description: Church Slavic
Description: Church Slavonic
Description: Old Bulgarian
Description: Old Church Slavonic
Description: Old Slavonic


Description: Chuvash


Description: Welsh


Description: Danish


Description: German


Description: Dhivehi
Description: Divehi
Description: Maldivian


Description: Dzongkha


Description: Ewe


Description: Modern Greek (1453-)


Description: English


Description: Esperanto


Description: Spanish
Description: Castilian


Description: Estonian



Description: Basque


Description: Persian`;
let resultString = "";
let match = myRegexp.exec(myString);
while (match != null) {
resultString = resultString.concat(""" + match + "" ");
match = myRegexp.exec(myString);
}
console.log(resultString);

最新更新