正则表达式为数学公式中所有下划线添加前后空格的实现方案
处理Obsidian中公式下划线的解决方案
正则表达式一次性替换方案
核心是精准匹配$包裹区域内的所有下划线,无需多次替换:
- 查找模式(需开启全局替换):
(?<=\$[^$]*?)_(?=[^$]*?\$) - 替换模式:
(注意是「空格+下划线+空格」的格式)_
这个正则利用正向/反向断言,只匹配处于$包裹内容内部的下划线,全局替换一次就能处理所有目标下划线,不会误改公式外的内容。
如果你的正则引擎不支持断言,也可以用分组循环替换:
- 查找模式:
(\$[^$_]*?)_([^$]*?\$) - 替换模式:
重复点击「全部替换」直到没有匹配项,也能批量处理所有下划线。$1 _ $2
Obsidian更省心的替代方法
不用修改下划线,直接调整公式的包裹符号:
- 将单行公式的单美元
$...$改成双美元$$...$$,Obsidian对$$包裹的块级公式不会解析内部下划线为强调格式,公式能正常显示。 - 示例:把
$(x_0, x_1, \dots, x_n)$改为$$(x_0, x_1, \dots, x_n)$$,无需改动下划线即可解决显示问题。
内容的提问来源于stack exchange,提问作者zxcvber
相关产品推荐
相关产品推荐

