読者です 読者をやめる 読者になる 読者になる

やらてょんろぐ

いろいろやる

Word で「直前の文字の0個以上の繰り返し」を置換する

タイピング

Word tips 第1弾ヾ(⌒(_•ω•)_

すべての , の直後にスペースを入れてください。

ただしそのスペースは必ず1個にしてください。

こういうとき「, の後ろの0個以上の _ を、_ 1個に置換」したくなると思います。

※見やすさのためスペースを _ で表現します。

やりかた

すべての,,_ に置換した後、ワイルドカードを使って、,_{1,},_ に置換します。

f:id:nohtaray:20170113150601g:plain

解説

{1,} は、「直前の文字の1文字以上」を表すワイルドカードです。

つまり ,_{1,} は 「, とその後にある _ の1文字以上の繰り返し」なので、,_,____ なんかにマッチします。これらを全部 ,_ にしてあげればいいです。

ワイルドカード 意味
{n} 直前の文字のn個の繰り返し (0 < n)
{n,m} 直前の文字のn〜m個の繰り返し (0 < n < m)
{n,} 直前の文字のn個以上の繰り返し (0 < n)

{1,} なんて覚えられませんが、上の表にある {n,m}m が省略されたやつだと考えるとわかりやすいとおもいます。

正規表現がわかるならそれと同じです。でも {0,} は使えないです。なぜ

注意

ちなみに@{1,} と同じく「直前の文字の1つ以上の繰り返し」を表しますが、これを使うとうまくいきません。

なぜなら @ は「最短マッチ」するからです*1。詳しくは動かしてみてほしいのですが、よくわからなければとりあえず {1,} を使うようにしておけばいいとおもいます。

おわり

これタイピング一切関係ないなヾ(⌒(_•ω•)_

*1:言葉のつかいかたあってるかわからない