Obsidian中用正则表达式替换,如何在替换内容中增加换行?

遇到的问题

我用regex Find/Replace插件,匹配替换一段文字,匹配成功的,作为 一级标题(实际上用是Note Definitions插件的格式排版)。
要匹配的内容与其它内容中英文短横线或中文破折号隔开,匹配成功后,不要分割符,需要在匹配成功的文字后增加一个换行符。

问题:

替换的内容不正确,上图的替换方法,只在正文中增加了斜线n斜线r,==实际没有换行==。

匹配的正则表达式(匹配结果是正确的)如下:

\n([A-Z0-9 ]{0,})+([\u4E00-\u9FA5]{2,})+(-|——)

只匹配行首的带中文,且有分割符的文本。
纯英文不匹配,段落中间的不匹配。

替换的表达式(替换结果换行不正确,其它替换内容正确),如下:

# $1$2 \n\r
ABP–Abbreviation for activity-based planning.

ABC分类法-按年交易额(价格乘以预计交易额)或其他标准降序对一组项目进行分类。

缺勤率-在某一基期(通常是一个月)内,雇员损失的工作日数与雇员可用工作日数的比值。

absentee rate–A ratio comparing the number of employee-days lost with the total number of available employee-days of employment during some base period, usually one month.

吸收成本法-一种存货计价方法,其中将可变成本——成本随生产数量变化和一部分固定成本分摊到每件产品上。

替换后的文本:

ABP–Abbreviation for activity-based planning.
# ABC分类法 \n\r按年交易额(价格乘以预计交易额)或其他标准降序对一组项目进行分类。
# 缺勤率 \n\r在某一基期(通常是一个月)内,雇员损失的工作日数与雇员可用工作日数的比值。
absentee rate–A ratio comparing the number of employee-days lost with the total number of available employee-days of employment during some base period, usually one month.
# 吸收成本法 \n\r一种存货计价方法,其中将可变成本——成本随生产数量变化和一部分固定成本分摊到每件产品上。

预期的效果

需要在匹配成功的文字后,添加换行。

ABP–Abbreviation for activity-based planning.
# ABC分类法
按年交易额(价格乘以预计交易额)或其他标准降序对一组项目进行分类。
# 缺勤率
在某一基期(通常是一个月)内,雇员损失的工作日数与雇员可用工作日数的比值。
absentee rate–A ratio comparing the number of employee-days lost with the total number of available employee-days of employment during some base period, usually one month.
# 吸收成本法
一种存货计价方法,其中将可变成本——成本随生产数量变化和一部分固定成本分摊到每件产品上。

已尝试的解决方案

替换内容中,\n\n\r\u000a,都不成功。
替换内容中用 <br>,能实现换行,但没有回车,不满足需求。

谢谢

建议使用 VSCode 等工具在 Ob 之外替换。

你可以看下具体内容,和你现在用正则替换的步骤没有任何差别,也没有用到任何编程。

有直接实现正则表达式替换的插件吗?推荐一个,不用编程来实现的那种。

obsidian-regex-pipeline 比这个好

这个我也试过了,不能替换“换行符”。

Regex Pipeline 可以替换换行符的,
就是它语法特殊了点, 它的匹配部分写 \n; 而替换字符不能写 \n 要写成 “字面意义的换行”

"\n\n+"->"

"

Regex Find/Replace 想替换为换行, 要勾选 Process \n as line break

另外似乎没有 \n\r 这写法, 常见的是 \n\r\n

1 个赞

勾选红框中的选项,有效,问题已解决, :handshake: 非常感谢。

今年又用回Obsidian做笔记了,它自带的文件内搜索和替换感觉不是很好用。
最近我自己写了个插件,obsidian-text-finder
基本功能似乎没有太大的问题,没写完多久因此也没太仔细测试,反正就是搜索、高亮、正则、大小写敏感这些功能。不过我自己日常用了一下似乎没有太大的问题,可以试一下。
test

1 个赞

真不错,和vscode体验差不多

非常感谢,解决了我的大问题。

1 个赞