Regex 正则表达式-替换每个奇数/偶数出现
好的,伙计们,任务是用模式B替换模式a的每一个奇数出现,用模式C替换每一个偶数出现。我放弃了这一点,并为此任务编写了一个python脚本,但我想知道是否可以用正则表达式替换来处理它(通过sed或vi)Regex 正则表达式-替换每个奇数/偶数出现,regex,sed,Regex,Sed,好的,伙计们,任务是用模式B替换模式a的每一个奇数出现,用模式C替换每一个偶数出现。我放弃了这一点,并为此任务编写了一个python脚本,但我想知道是否可以用正则表达式替换来处理它(通过sed或vi) 如果您需要知道这是为了什么,它是用双引号将长文本重新格式化为LaTeX样式(“打开”、“关闭”)。最直接的方法是在处理之前将文件完全读入模式空间——因为它是一个LaTeX源文件,我认为它适合内存。你可以用 sed ':a $!{ N; ba }; s/"\([^"]*\)"/``\1'"''"'/
如果您需要知道这是为了什么,它是用双引号将长文本重新格式化为LaTeX样式(“打开”、“关闭”)。最直接的方法是在处理之前将文件完全读入模式空间——因为它是一个LaTeX源文件,我认为它适合内存。你可以用
sed ':a $!{ N; ba }; s/"\([^"]*\)"/``\1'"''"'/g' filename.tex
”
(LaTeX结尾引号)的Shell引号使这看起来比实际情况更令人困惑。塞德看到的是
:a $!{ N; ba } # read the whole file into the pattern space
s/"\([^"]*\)"/``\1''/g # replace all quoted strings with LaTeX-quoted strings
举个例子会更好。