検索と置換を使いこなそう!
ワイルドカードのすすめ

文字を入れ替えてみよう

ワイルドカードって、 置換と検索をするときにとっても便利なんです。


今度は、少し難しいっ・・・


ねずみ⇒とら⇒うし⇒いのしし
このような文字があるとして、
“とら” と、 “うし” の文字を逆にしたいってときを考えていきましょう。
つまり、
ねずみ⇒うし⇒とら⇒いのしし
にしたい。
変更したいのは、うし と とら という文字なので その二つを * とします。
ねずみ とら うし いのしし
ねずみ *    *    いのしし
初めの*を、二番目の*とを入れ替えればいいので、
初めの*を \1
二番目にある*を \2
という記号で表します。

“とら”が“\1”で、
“うし”が“\2”
という記号に置き換えて考えます。

つまり、\1(とら)と、\2(うし)をいれかえるので
ねずみ \2 \1 いのしし
と置換の文字を書き入れます。
つまり、
検索文字列  ねずみ⇒*⇒*⇒いのしし
置換文字列  ねずみ⇒\2⇒\1⇒いのしし
と、ワイルドカードで置換します。


それでは、わかりにくいので、、例題をみながら覚えていきましょう!
以下の文字列があるとして、

○タイ=2文字
○フランス=4文字
○オーストラリア=7文字
○アメリカ=4文字
○ロシア=3文字

これを、
○2文字=タイ
○4文字=フランス
○7文字=オーストラリア
○4文字=アメリカ
○3文字=ロシア

に変更するには、どうしたらいいでしょうか?
規則性は、=の前後の単語が入れ替わっています

○*=*
この*の位置を入れ替えればいいのです。 つまり、
検索文字列  ○*=*
置換文字列  ○\2=\1

となります。

このように、\1や\2などを使えば、文字の入れ替えも簡単に できます。



ここで出てきた、\ は、円マークではなく、エスケープ文字といってこれも特別な意味を持った文字になります。
\    エスケープ文字
上にでてきた、\1ですが、特殊な意味ではなく、本来の記号の意味、
つまり、“1円”とする意味で使いたい場合に、
このエスケープ文字を前に置くことで、ただの記号になります。
\10000 は、一万円ですが、ワイルドカードでは、
\1という特別な意味を持った記号と、0000(ゼロが4つ)の意味になります。


つまり、ワイルドカードの記号 * ? を、普通の記号として使いたい場合は、必ず\マークを前につけて下さい。
\*		ただの*(アスタリスク)記号
*		任意の一文字以上の文字列
\?		ただの?(はてな)記号、疑問をあらわす記号
?		任意の一文字をあらわす記号
となりますので、注意して下さい。