我想替换123 456 789
为q23 r56 u89
使用杰尼正则表达式。到目前为止,我可以使用多个查找和替换模式来完成此操作,如下所示:
...
Find: `(\D|^)4`
Replace: `\1r`
Find: `(\D|^)5`
Replace: `\1t`
...
我想通过\2
规则的映射将这 10 个语句合并为一个[1234567890] -> [qwertyuiop]
。
我怎样才能在 geany 中做到这一点?
答案1
我认为这不能用单个正则表达式来完成,因为无法查看捕获组的内部。但 Perl 可以在一行中完成此操作,因为它允许在替换中运行音译:
$ echo 123 456 789 | perl -pe 's/\b[0-9]/ $& =~ tr,1-90,qwertyuiop,r /ge'
q23 r56 u89
(s/pattern/replacement/
是sed
- 样式的 find+replace 运算符,\b
匹配单词边框。finale
后的/
使替换成为表达式,并且其中的片段用于tr///
音译$&
,即包含匹配文本的变量。任意字符可以用作tr
,因此使用逗号是为了不与外部运算符冲突。)
当然,如果您想在 Geany 内完成此操作,这并没有多大帮助。