我需要替换这一行:
tvec.at(21).interrupt();
这一行:
if (thr_ev_21.get()) thr_ev_21->interrupt();
我有很多这些不同数字的线(即22,23,24等)
Notepad ++(v7.5.3)中是否有一种方法可以动态替换:
tvec.at(X).interrupt();
- >
if (thr_ev_X.get()) thr_ev_X->interrupt();
答案 0 :(得分:1)
tvec\.at\((\d+)\).interrupt\(\);
if \(thr_ev_$1.get\(\)\) thr_ev_$1->interrupt\(\);
<强>解释强>
tvec\.at\( : literally, dot and parenthesis have to be escaped
(\d+) : group 1, 1 or more digits
\).interrupt\(\) : literally, dot and parenthesis have to be escaped
注意:
使用Notepad ++,必须在替换部分中转义括号。
答案 1 :(得分:1)
将搜索模式更改为“正则表达式”,并替换:
tvec.at\((\d+)\).interrupt\(\);
使用:
if \(thr_ev_\1.get\(\)\) thr_ev_\1->interrupt\(\);
注意:
[]{}?*
以及其他一些我忘记的角色做同样的事情。\d+
)中任意数字的匹配位于括号中,因此它形成一个捕获组。由于它是第一个这样的组,您可以在替换字符串中将其称为\1
。 (在替换中多次引用它没有问题。)