今度は、少し難しいっ・・・
ねずみ⇒とら⇒うし⇒いのししこのような文字があるとして、
“とら” と、 “うし” の文字を逆にしたいってときを考えていきましょう。
つまり、
ねずみ⇒うし⇒とら⇒いのししにしたい。
変更したいのは、うし と とら という文字なので その二つを * とします。
ねずみ | ⇒ | とら | ⇒ | うし | ⇒ | いのしし |
ねずみ | ⇒ | * | ⇒ | * | ⇒ | いのしし |
初めの*を \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つ)の意味になります。
つまり、ワイルドカードの記号 * ? を、普通の記号として使いたい場合は、必ず\マークを前につけて下さい。
\* ただの*(アスタリスク)記号
* 任意の一文字以上の文字列
\? ただの?(はてな)記号、疑問をあらわす記号
? 任意の一文字をあらわす記号
となりますので、注意して下さい。