文字列の検索・置換には「ワイルドカード」が便利ですが、「*」や「?」そのものを検索したいとき、ワイルドカードを使った実務で使える検索・置換方法を紹介します。
ワイルドカード | 意味 |
*(アスタリスク) | 任意の文字列 |
?(クエスチョンマーク) | 任意の1文字 |
例えば「*部」で検索すると、「営業部」「マーケティング部」「総務部」といったように、最後に「部」が付くすべての文字列がヒットします。一方で「??部」と検索すると、「○○部」(2文字+最後が「部」の文字列)だけ、つまり「営業部」「総務部」などがヒットします。
では、「*」や「?」そのものを検索したいときは、どうすればいいのでしょうか? さらに「?」以降の文字列をまとめて削除(置換)したい場合を紹介します。
○「~」を前に付ければ通常の文字に
ここでは例として、以下のような文字列の「?」以降をまとめて削除します。WebサイトのURLでよく見かけますね。
/column/5964/index.html?usqp=mq331AQGCAEYASAB
ワイルドカードである「?」を通常の文字として検索するには、「~」(チルダ)を前に付けて「~?」を検索文字列として指定します。また、「?」以降の文字列は「~?*」で表せます。これを空白の文字列と置換すれば、まとめて削除できます。
1.「?」を通常の文字として検索する
[検索と置換]ダイアログボックスの[検索]タブを表示しました。普通に「?」を検索すると、任意の1文字を含む文字列=すべての文字列(セル)がヒットしてしまいます。
そこで「~」を前に付けた「~?」を検索文字列として指定し、[次を検索]をクリックします。
すると「?」を含む文字列が順にヒットします。
2.「?」以降の文字列を削除する
さらに「?」以降の文字列を削除します。[検索と置換]ダイアログボックスの[置換]タブを表示し、検索文字列として「~?*」、置換文字列として空白を指定してから[すべて置換]をクリックします。
「?」以降の文字列がまとめて削除されました。
この例ではURLの不要な文字列(パラメータ)を一括削除でました。