番号 | 記号 | 初期キー | 機能 |
---|---|---|---|
#57 | - | ^QO | 直前の置換の再実行 |
直前の置換の再実行
戻り値 r:置換した文字列の数
無効
無効
無効
無効
連続する空行の削除や,空白類の整理に利用できる。特に正規表現で削除できない改行を含む文字列を,簡単に整理することができる。
57 ^QO ""
?.
#56 "\n\n\n" #m "\n\n" #m "ay"
:L (r)??.
#57 >L
上記は2行以上の空行を整理して,空行は1行のみとする例である。もしも空行をすべて削除するなら「\n\n」→「\n」とすればよい。改行をすべて削除してしまうと後が大変かもしれないので,ヌル置換は勧めない。そのような必要がある場合は,ブロック指定を前提にするのがよいだろう。
なお,ラベルジャンプで擬似ループにしているが,ラベルジャンプが嫌いなら次のように無限ループの脱出手法を利用するとよい。
(-1){ #57 (r)??{} }
#57により置換を重ねた場合に置換した文字列数を明示するには,ループの内部でrを加算してゆく必要がある。
a-,
#56 "\n\n\n" #m "\n\n" #m "ay"
a+=r,
(-1){ #57 a+=r, (r)??{} }
&m("%u",a)