123 456 789
以下を使ってq23 r56 u89
交換したいと思います。ジェニー正規表現。これまでは、次のような複数の検索パターンと置換パターンを使用してこれを行うことができます。
...
Find: `(\D|^)4`
Replace: `\1r`
Find: `(\D|^)5`
Replace: `\1t`
...
\2
ルールマッピングを通じて、この10個の文を一つにマージしたいと思います[1234567890] -> [qwertyuiop]
。
Geanyでどうすればいいですか?
答え1
キャプチャグループの内部を見る方法がないので、単一の正規表現ではこれを行うことはできません。ただし、Perlは音訳を通常どおり実行できるようにするため、これを1行で実行できます。
$ echo 123 456 789 | perl -pe 's/\b[0-9]/ $& =~ tr,1-90,qwertyuiop,r /ge'
q23 r56 u89
(は単語の境界線と一致する - スタイル検索+置換演算子s/pattern/replacement/
です。最後の演算子は置換を式にし、その一部は文字列、つまり一致するテキストを含む変数に使用されます。すべての文字を使用できるため、カンマは外部演算子と競合しないことを示します。sed
\b
e
/
tr///
$&
tr
もちろん、Geany内でこれを行う場合はあまり役に立ちません。