文字列に対して1文字ごとに特定の文字を追加する
SNSやチャットなどで、突然「あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛」と叫びたくなることがあります。
こんなとき、どうやって作りますか。
僕はこんなかんじです
-
ああああああああ
と入力 - カーソルを戻して1文字目と2文字目の間に
だくてん
と入力して変換→゛
-
゛
をコピー(Ctrl+v
) -
右キー
とCtrl+V
を交互に連打
まあこれで十分なんですが、たまに一か所抜けたり、連続で挿入したりしてしまうことがありますね。まあ人間なので仕方ない…
というわけで、今回はWindowsPCなら環境を用意せずに誰でも簡単にこの処理を行えるコマンドを書いてみました。
コマンド
("ああああああああ" -split '(?<=.)') -join "゛"
-
ああああああああ
、゛
部分は任意の文字列に変更してください -
゛
部分は1文字でなくてもOK
実行結果
PS C:\> ("ああああああああ" -split '(?<=.)') -join "゛"
あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛
ちなみに、、、いちいち調べるくらいだったら普段通りコピペしたほうがいい気もします。。
(?<=.)
という覚えにくい(?)正規表現のところをやめると、1文字目の前にも挿入されます。
これを手で削除したほうが楽ということもあるかもしれませんね。
以上です。
.★☆★.メ.★☆★.リ.★☆★.ー.★☆★.ク.★☆★.リ.★☆★.ス.★☆★.マ.★☆★.ス.★☆★.
PS C:\> ("メリークリスマス" -split '') -join ".★☆★."
構文の解説(ChatGPTによる)
-
-split '(?<=.)'
-
-split
は文字列を指定の模式に基づいて分割する -
(?<=.)
は正規表現で「一文字の後」を意味する - これにより各文字の間で分割される
-
-
-join "゛"
-
-join
は配列の要素を指定の文字列で結合する - 各文字の間に『゛』を追加して結合される
-