正则表达式 - 替换每个奇数/偶数事件

时间:2015-03-27 14:07:34

标签: regex sed

好的,伙计们,任务是用模式B替换模式A的每一个奇怪的事件,并且每个偶数事件都用模式C替换。我放弃了这个并为任务编写了一个python脚本,但我想知道它是否可以用正则表达式替换处理(通过例如sed或vi)

如果您需要知道这是为了什么目的,那么重新格式化带有双引号的长文本到LaTeX样式(“打开”,“关闭”。

1 个答案:

答案 0 :(得分:2)

最简单的方法是在处理之前将文件完全读入模式空间 - 因为它是一个LaTeX源文件,我认为它很适合内存。你可以使用

sed ':a $!{ N; ba }; s/"\([^"]*\)"/``\1'"''"'/g' filename.tex

Shell引用''(LaTeX收尾报价)使得这看起来比实际上更令人困惑。 sed看到的是

:a $!{ N; ba }          # read the whole file into the pattern space
s/"\([^"]*\)"/``\1''/g  # replace all quoted strings with LaTeX-quoted strings