如何将类似query-replace
正则表达式搜索和替换的内容结合起来,部分地重用搜索结果?
就我而言,如何转变
程序员“有点”相信子例程“load_students”和“compute_student_grade”没有错误。
进入
程序员“有点”相信子例程 \texttt{load_students} 和 \texttt{compute_student_grade} 没有错误。
我可以使用两个query-replace
,然后敲击“是”和“否”,但对于大文档来说,这似乎很缓慢。另外,我考虑过在搜索中包含空格( one "
和 one "
,但这在以下情况下不起作用... that's not the way to use "load_students", rather ...
是否有内置的东西可以实现这一点,或者您是否编写 Elisp 代码?
答案1
您可以query-replace-regexp
这样使用:
M-x query-replace-regexp RET
\"\([^[:space:]]+\)\" RET
\\texttt{\1} RET
查询字符串可以理解为:将一个或多个非空格字符的序列匹配到匹配组 1(括号用于分组),所有这些都用引号括起来。
\1
替换字符串上的 插入匹配分组。
前面的双反斜杠texttt
是为了从解释中转义反斜杠字符。
相反,如果您想要匹配的只是带有下划线的多字符号,那么您需要将匹配字符串更改为类似\(\w+_\w+\)