(replace-regexp-in-string "\\((h.*)\\)" "[\\1] 22" "[using](https)" nil 'literal)
想使用 replace-regexp-in-string
将 [using](https)
替换成 [[https][using]]
可是 匹配组一直用不上
(replace-regexp-in-string "\\((h.*)\\)" "[\\1] 22" "[using](https)" nil 'literal)
想使用 replace-regexp-in-string
将 [using](https)
替换成 [[https][using]]
可是 匹配组一直用不上
(replace-regexp-in-string (rx "[" (group (1+ anychar)) "]"
"(" (group (1+ anychar)) ")")
"[[\\1]][[\\2]]"
"[using](https)")
;; => "[[using]][[https]]"
在 Elisp 中,({
不转义表示原含义,转义后才表示分组
你为什么要用 'literal
这个参数,用了不就是替换成 \\1
这种字符串吗?
(replace-regexp-in-string "\\[\\(using\\)\\](\\(https\\))" "[[\\2]][[\\1]]" "[using](https)")
;; => "[[https]][[using]]"
(replace-regexp-in-string "\\[\\(using\\)\\](\\(https\\))" "[[\\2]][[\\1]]" "[using](https)" nil 'literal)
;; => "[[\\2]][[\\1]]"
这个修改抄的代码,就没有改后面