Regular-Expression

Emacs:查詢替換、正則表達式、搜尋結果的重用

  • May 30, 2012

如何將某些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 程式碼?

您可以query-replace-regexp這樣使用:

M-x query-replace-regexp RET
\"\([^[:space:]]+\)\" RET
\\texttt{\1} RET

查詢字元串可以理解為:將一個或多個非空格字元的序列匹配到匹配組 1(括號用於分組),所有這些都用引號括起來。

替換字元串上的\1插入匹配分組。

前面的雙反斜杠texttt用於從解釋中轉義反斜杠字元。

相反,如果您想要匹配的只是帶有下劃線的多字元號,那麼您需要將匹配字元串更改為類似\(\w+_\w+\)

引用自:https://unix.stackexchange.com/questions/39628