【发布时间】:2023-04-06 05:55:01
【问题描述】:
我有一个很大的 LaTeX 文档,我希望更改我使用绝对值表示法的地方的格式。理想情况下,我会自动执行此操作,但我不确定如何构建正则表达式来执行此操作。
我查看了这个网站上的其他问题,很多都涉及如何用 abs(foo) 替换 (foo),但问题是 '(' 和 ')' 是不同的字符,而开头和结束绝对值括号是相同的。
我在想我必须以某种方式计算“|”实例来查看是否有偶数或奇数发生。
我的工作假设是 |富 |酒吧 |巴兹 |总是转换为 abs(foo) bar abs(baz) 即没有嵌套。
有没有办法做到这一点?我用了一点grep,但是sed或者perl用的不多,所以我不清楚如何进行搜索和替换。
【问题讨论】:
-
为什么你认为这比括号更难?尝试同样的事情,但用管道替换括号,看看它是否符合您的要求。
-
是否有任何关于
|两侧是否存在空格的假设?例如,如果它是一个绝对值,那么|foo|将在第一个|之前有一个空格,在第二个|之后有一个空格。而对于|foo|bar|baz|甚至|foo|bar|(其语义与绝对值不同),您的正则表达式可以在第二个|之后检查非空格,然后再将其称为abs。我知道我在这里做了一些假设...... -
遗憾的是,我认为间距不够一致。
标签: regex replace sed grep full-text-search