この記事では、Microsoft Word(ワード)でワイルドカード検索/置換を行うためのワイルドカードの記述方法について説明します。
ワイルカード検索/置換って何?という方は、以下の記事を先にお読みください。
ワイルドカードの一覧を見たい!という方は以下の記事をご参照ください。
以下の説明では、ワイルドカードまたはワイルドカードを含む検索文字列は、この色でハイライトしてあります。
また、ワイルドカードを使用する検索/置換を行うには、ワードの置換画面(「Ctrl」+「H」で出せます)で
「ワイルドカードを使用する」にチェックを入れてください(以下のイラストのようにしてください)。
また、以下の点に留意してください。
「ワイルカードを使用する」にチェック入れた場合、大文字小文字半角全角が区別されます。
それでは、説明を始めます。
一文字形式のワイルドカード
?:全角半角を問わず任意の一文字を表します。
例えば、検索文字列を「?個」とすると、1個、2個、3個、n個、N個、何個などがヒットします。
任意の二文字を検索したい場合は、検索文字列を「??」とします。
例えば、「??個」とすると、11個、12個、XX個などがヒットします
*:全角半角を問わず0文字以上の長さの任意の文字列を表します。
例えば、検索文字列を「明日は、*と遊びに行く。」とすると、
「明日は、田中太郎と遊びに行く。」、
「明日は、鈴木太郎と遊びに行く。」、
「明日は、何もしない予定であるが、気が向いたらマクロ太郎と遊びに行く。」
などがヒットします。
(太字の部分が*に相当します)
「*」(アスタリスク)は、「0文字以上の長さの任意の文字列」(つまり、*の部分が存在しない場合も含む)を表すため、上の検索文字列の例では、「明日は、と遊びに行く。」もヒットします。
さらに、上記の条件での検索では、以下のイラストのように、改行を含むものもヒットします。
「*」は、長さが任意であるため、意図しない文字列がヒットしないように注意が必要です。
@:直前の一文字が1個以上存在することを表します。
例えば、to@lを検索文字列にすると、「「t」の後に「1個以上のo」が存在し、その後に「l」が存在する文字列」という意味になるので、「tol」、「tool」、「toool」、「tooool」などがヒットします(「tol」もヒットすることに注意してください)。
<:単語の始まりの文字/文字列を指定できます。
>:単語の終わりの文字/文字列を指定できます。
<Tiを検索文字列にすると、「Ti」から始まる単語が検索され、Title、Tigerなどがヒットします。
le>を検索文字列にすると、「le」で終わる単語が検索され、Table、Title、Turtle、Tackle、Twinkleなどがヒットします。
<T??le>を検索文字列にすると、「最初に「T」、次に任意の2文字、最後に「le」である単語」という意味になりますので、「Table」や「Title」がヒットします。
¥:ワイルドカード記号を通常文字としてワードに認識させる場合に使用します。
(ここでは、¥は全角ですが、実際の使用時は、半角で使用してください)
ワイルドカード記号の直前に「¥」を付けることで、ワイルドカード記号が通常文字として認識されます。
つまり、「¥」の直後にくるワイルドカードはエスケープされます。
例えば、「<」と「>」はワイルドカード記号ですが、直前に¥を付けて、それぞれ¥<、¥>とすると、「<」と「>」は通常文字として認識されます。
例えば、¥<??太郎¥>と記述することで、「<〇〇太郎>」を検索することができ、「<鈴木太郎>」、「<山田太郎>」、「<佐藤太郎>」などがヒットします。
{ }形式のワイルドカード
{ }:直前の文字の文字数または文字数範囲を指定できます。
例えば、to{2}lと記載した場合、to{2}l中の「o{2}」の部分は、「2つのo」という意味になるので、「tool」がヒットします。
つまり、X{n}は、「n個のX」という意味になります。
(Xは任意の一文字、nは1以上の整数です)
ちなみに、to{1}lと記載した場合、「to{1}l」中の「o{1}」の部分は「1つのo」という意味になるので、「tol」がヒットします。
{}は、文字数の指定だけでなく、文字数範囲の指定にも使用できます。
例えば、to{2,}lと記載した場合、to{2,}l中の「o{2,}」の部分は、「2つ以上のo」という意味になるので、「tool」、「toool」、「tooool」、「toooool」などがヒットします。
つまり、X{n,}は、「n個以上のX」という意味になります。
(Xは任意の一文字、nは1以上の整数です)
さらに、例えば、to{2,3}lと記載した場合、to{2,3}l中の「o{2,3}」の部分は、「2~3つのo」という意味になるので、「tool」と「toool」がヒットします。
つまり、X{n,m}は、「n~m個のX」という意味になります。
(Xは任意の一文字、nとmは、それぞれ1以上の整数であり、かつm>nです)
[ ]形式のワイルドカード
[ ]:[ ]内の文字のいずれか一文字を表します。
T[ai]leを検索文字列にすると、最初が「T」、次が「a」または「i」、次が「le」という文字列の意味になりますので、TaleとTileがヒットします。
もう一つ別の例を挙げます。
佐藤[太一三]郎を検索文字列にすると、最初が「佐藤」、次が「太」または「一」または「三」、最後が「郎」という文字列という意味になりますので、佐藤太郎、佐藤一郎、佐藤三郎がヒットし、佐藤次郎や佐藤二郎はヒットしません。
[!]:!の後の文字以外の一文字を表します。(つまり、「!」は、否定の意味なります)
例えば、佐藤〇郎をヒットさせたいが、佐藤一郎と佐藤二郎だけはヒットさせたくない場合は、佐藤[!一二]郎と記述すると、佐藤一郎と佐藤二郎以外の佐藤太郎、佐藤三郎、佐藤四郎などがヒットします
(「佐藤[!一二]郎」中の[!一二]の部分は、一と二以外の一文字という意味になります)。
佐藤四郎と佐藤三郎もヒットさせたくない場合は、佐藤[!一二三四]郎と記述します。
[〇-△]の形式で一定範囲内の一文字を表すワイルドカード
前述のように、[]は、[]内の文字のいずれか一文字を表します。
したがいまして、[〇-△]形式のワイルドカードは、〇~△のうちのいずれか一文字を意味します。
[0-9]:一桁の半角数字を表します(0も-も9も[]もすべて半角で記述します)。
つまり、「0、1、2、3、4、5、6、7、8、9のいずれか1つ」という意味です。
例えば、「1人の人が歩いていいるとき、2匹のアヒルに出会った」という文章を[0-9]でワイルドカード検索する場合、最初の半角の「1」のみがヒットします。後半の「2」は全角であるため、ヒットしません。
[1-3]と記載すると、半角の1~3がヒットします。
この場合、例えば、「0123456789」という文字列が検索対象である場合、1と2と3のみがヒットします。
[0-9]:一桁の全角数字を表します(0と9のみ、全角で記述します)。
例えば、上の例の文章を[0-9]で検索すると、全角の「2」のみがヒットします。
[2-4]と記載すると、全角の2~4がヒットします。
[a-z]:小文字の半角アルファベット一文字を表します。
例えば、「aBcDEFg」の場合、「a」と「c」と「g」のみがヒットします。
[d-g]と記載すると、半角のd~gがヒットします。
[A-Z]:大文字の半角アルファベット一文字を表します。
例えば、「aBcD」の場合、「B」と「D」のみがヒットします。
[J-L]と記載すると、半角のJ~Lがヒットします。
[a-z]:小文字の全角アルファベット一文字を表します。
例えば、「aBcDEFg」の場合、「a」と「c」と「g」のみがヒットします。
[d-g]と記載すると、全角のd~gがヒットします。
[A-Z]:大文字の全角アルファベット一文字を表します。
例えば、「aBcDD」の場合、全角の「B」と「D」のみがヒットします。
[J-L]と記載すると、全角のJ~Lがヒットします。
[ぁ-ん]:ひらがな一文字を表します。
例えば、「マクロ太郎と遊びに行く」の場合、「と」、「び」、「に」、「く」がヒットします。
[ぁ-ゖ]:特殊なひらがな(ゔ、ゕ、ゖ)を含めたひらがな一文字を表します。
(通常は、上記の[ぁ-ん]で十分だと思います)
[ァ-ヾ]:全角カタカナ一文字を表します。
例えば、「マクロ太郎と遊びに行く」の場合、「マ」、「ク」、「ロ」がヒットします。
[ヲ-゚]:半角カタカナ一文字を表します。
例えば、「マクロ太郎と遊びに行く」の場合、半角の「ク」のみがヒットします。
[一-龠]:漢字一文字を表します。
例えば、「マクロ太郎と遊びに行く」の場合、「太」、「郎」、「遊」、「行」がヒットします。
[\!-~]:記号を含む半角英数字を表します。
例えば、「ajB0i7E($8#」の場合、半角の「j」、「0」、「7」、「E」、「(」、「$」がヒットします。
(その他は、全角であるためヒットしません)
[①-⑳]:①~⑳を表します。
例えば、「ステップ③、㊹、及び㉛を実施する」の場合、「③」のみがヒットします。
[①-⑳㉑-㉟㊱-㊿]:①~㊿を表します。
例えば、「ステップ③、㊹、及び㉛を実施する」の場合、「③」、「㊹」、「㉛」がヒットします。
[㋐-㋾]:㋐~㋾を表します。
例えば、「㋮ク㋺太郎と遊びに行く」の場合、「㋮」と「㋺」がヒットします。
[㊊-㊐]:㊊~㊐を表します。
例えば、「㋮ク㋺太郎と㊊曜日に遊びに行く」の場合、「㊊」のみがヒットします。
[〇-△]の形式のワイルドカードで文字数/桁数を指定する方法
ここまでにさまざまな[〇-△]形式のワイルドカードを紹介しましたが、どれも一文字/一桁を表すものでした。
例えば、[a-z]と記載すると、1文字の半角小文字アルファベットがヒットします。
この例で、連続する2つの半角小文字アルファベットを検索したい場合は、上に紹介した{}を使用して、検索文字列を[a-z]{2}にします。
例えば、ワード文書中「ABCdEFghIJKL」を[a-z]{2}で検索した場合、2つの連続小文字アルファベットである「gh」のみがヒットし、単独の小文字である「d」はヒットしません。
仮に、検索文字列を[a-z]{3}とした場合、「ABCdEFghIJKL」中でヒットする文字はありません(連続する3つの小文字半角アルファベットが存在しないためです)。
{}を使用すると、文字数/桁数の範囲を指定することもできます。
例えば、検索文字列を[a-z]{1,2}とした場合、1~2つの半角小文字アルファベットがヒットしますので、「ABCdEFghIJKLabc」中を順次検索した場合、「d」、「gh」、「h」、「ab」、「bc」、「c」の順でヒットします。
結果としてヒットするのは、「d」、「gh」、「abc」です。
この検索文字列[a-z]{1,2}の場合、上記のような順序でヒットする理由は、1つずつ位置をずらしながら検索していく過程で、各位置で、2つの連続する半角小文字アルファベットがないかを最初に探し、なければその位置で、1つ半角小文字アルファベットを探しているためです。
この例のように1~2文字などと文字数範囲を指定して順次検索した場合、上記のような順序でヒットすることになりますが、話を簡略化するために、以後の例では、ヒットする順番に関する話は抜きにして、結果的にヒットするもののみを記載します。
ちなみに、上の例で検索文字列を[a-z]{2,3}とすると、「gh」と「abc」のみがヒットします。
もう少し例を挙げます。
「彼の時給は900円であるが、彼女の時給は2000円である。」という文章があるとします。
この文章に対して、[0-9]{1,4}(1~4桁の半角数字)で検索した場合は、「900」と「2000」がヒットします。
[0-9]{4}(4桁の半角数字)で検索した場合は、「2000」のみがヒットします。
[0-9]{4,}(4桁以上の半角数字)で検索した場合も「2000」のみがヒットします。
[一-龠]{2}(2つの連続する漢字)で検索した場合は、最初の「時給」と、「彼女」と、後半の「時給」がヒットします。
以上のように、
[〇-△]形式のワイルドカードにも、お尻に{n}または{n,}または{n,m}とつけることで、文字数/桁数または文字数/桁数の範囲を指定することができます。
(nとmは、それぞれ1以上の整数を表し、かつm>nです)
[〇-△]の形式のワイルドカードの組み合わせ方
上に紹介しました[〇-△]形式のワイルドカードは、組み合わせることができます。
例えば、[0-9]は、「1桁の半角数字」であり、[a-z]は、「半角小文字アルファベット一文字」ですが、[0-9a-z]と書いた場合は、「1桁の半角数字または半角小文字アルファベット一文字」の意味となります。
したがいまして、「I GOT 900 yen.」という英文があった場合、検索文字列を[0-9a-z]としてワイルドカード検索を行うと、「9」、「0」、「0」、「y」、「e」、「n」がヒットします。
さらに、上記の英文に対して[0-9a-zA-Z](「1桁の半角数字または半角小文字アルファベット一文字または半角大文字アルファベット一文字」の意味)で検索を行った場合は、上記の英文中の空白とピリオド以外のすべての文字がヒットします。
[〇-△]の形式のワイルドカードと具体的な一文字との組み合わせ方
ここまでは、[〇-△]形式のワイルドカードばかりを組み合わせてきましたが、具体的な一文字とも組み合わせることが可能です。
例えば、半角の空白を含めて、検索文字列を[0-9a-zA-Z ](←Zの後に半角の空白を入れています)とすると、「I GOT 900 yen.」の「.」以外がすべてヒットします。
さらに、[0-9a-zA-Z ]に「.」を加えて、検索文字列を[0-9a-zA-Z .](←半角の空白の後に「.」を加えました)とすると、「I GOT 900 yen.」がすべてヒットします。
前半で説明しましたように、[]を使うと具体的な一文字だけを組み合わせることもできます。
例えば、[Gyn]とした場合は、「G」または「y」または「n」という意味になるので、上記の英文中では、「G」、「y」、「n」がヒットします。
もう一つ例を挙げます。
「私はマクロ太郎Aと一緒に遊んだ」という文章があるとします。
この場合、検索文字列を[マ太A](「マ」または「太」または「A」の意味)とすると、文章中の「マ」、「太」、「A」がヒットします。
ここまでに、[]の中でいろいろな〇-△形式ワイルドカードまたは具体的な一文字を組み合わせましたが、それらはすべて「または」での組み合わせになります。
また、[]の中がどのような組み合わせでも、桁数/文字数の指定の仕方は、上に紹介したやり方と変わりません。
例えば、変な文章ですが「パパA、ママA、及びママBBが公園でおしゃべりしていた」という文があったとします。
この場合、[マA-Z]{4}とした場合、「マまたは半角大文字アルファベットが連続する4文字」という意味になるので、上記の文中でヒットするのは、「ママBB」のみです。
もし検索文字列を[マA-Z]{3}とすると、「マまたは半角大文字アルファベットが連続する3文字」という意味になるので、「ママA」と「ママB」と「マBB」が順番にヒットします。
(もう少し詳しく説明しますと、[マA-Z]{3}は、「一文字目がマまたは半角大文字アルファベットであり、二文字目がマまたは半角大文字アルファベットであり、三文字目がマまたは半角大文字アルファベットである文字列」を意味します。
さらなるワイルドカードの組み合わせ
ここまでに紹介した組み合わせ方法に加えて、?も使用してワイルドカードを組み立ててみます。
「溶液Aを100度で加熱した。その後、50度で加熱した溶液液Bに対して、2つに分割した溶液Aを加えた。」
この場合、「100度」、「50度」、「2つ」をヒットさせるワイルドカードはいくつか考えられますが、例えば、[0-9]{1,3}?というワイルドカードが使用できます。
このワイルドカードカードは、「1~3桁の半角数字」+「任意の一文字」という意味です。
ワイルドカードを並べた場合(この場合は、[0-9]{1,3}と?を並べています)、それらは+でつながります。
つまり、「前半は1~3桁の半角数字であり、後半は何でもいいから一文字」という意味です。
[0-9]{1,3}[一-龠ぁ-ん]というワイルドカードでも、上記の3つをヒットさせることができます(一-龠は漢字一文字、ぁ-んはひらがな一文字です)
このワイルドカードカードは、「1~3桁半角数字」+「漢字一文字またはひらがな一文字」という意味ですので、「100度」、「50度」、「2つ」がヒットします。
「溶液Aを100度で加熱した。その後、50度で加熱した溶液液Bに対して、2つに分割した溶液Aを加えた。」という文を再度例にします。
この文中の「100度」と「50度」のみをヒットさせたい場合は、[0-9]{1,3}度という検索文字列を使用します。
[0-9]{1,3}度の意味は、「1~3桁の半角数字」+「度」です。
仮に「2度」や「4度」という「1桁数字+度」という文字列が文書中に存在する場合は、[0-9]{2,3}度(「2~3桁の半角数字」+「度」の意味です)として範囲を絞ると、「100度」と「50度」のみがヒットします。
この記事はこれで終了です。
今回の記事に加えて、以下の記事を読んでいただくことで、ワイルドカード検索/置換の幅がさらに広がります。
是非お読みください。
以下の記事では、置換後の文字列に改行などを含める方法(ワイルドカードは使用しません)について説明していますので、是非併せて読んでみてください。
今回の記事で紹介したワイルカードとその使用例は以下の記事にまとめました。
最後まで読んでいただきましてありがとうございました!