我将数以万计的文件从一个标记格式(显然有些RUNOFF的后裔,我拥有极少的文件)转换成我可以提供给 LaTeX 的东西。 部分过程涉及搜索每个文件, 每一个字符串在旧标记格式中具有特殊意义, 并用适合的字符串替换 LaTeX 。 有上百个。 目前我的两个想法是作为单独的 gsub 来做每个文件, 或者用一个与许多符号相匹配( ORing ) 的正格子来做一个 gsub, 然后通过一个大案说明将匹配到一个方法来传递给一个大案说明, 从而传递给合适的替换。 在它的表面上, 第二种方式是减少每个文件必须被扫描的次数, 但雷格克斯 内 OR 的顶端可能更昂贵。 有人知道哪个方法更好, 或者我错过了一个好的方法吗?
以下是我所描述的两种方式的例子。它们可能是不完善的,只是试图把我的观点讲清楚。
方法1:
output.gsub!(/a<-"/, \"{a} ) # ä
output.gsub!(/a<-^/, \^{a} ) # â
output.gsub!(/a<-~/, \~{a} ) # ã
...etc
方法2:
output.gsub!(/a<-"|a<-^|a<-~|etc/) {|match| convert_symbol(match)}
def convert_symbol(input)
case match
when a<-"
\"{a} # ä
when "a<-^"
\^{a} # â
when "a<-~"
\~{a} # ã
when etc
\LaTeX...etc
end
end