1. Excel でワイルドカード
Excel で文字データを入力した。入力中、不明なデータについては、半角で
?
とした。後になって、不明なデータを検索しようと `?’ を検索。しかし、上手くヒットしない。ただし、全角の
?
で検索すると、半角の ? がヒットした。
なぜなら、Excel では、半角の `?’ が 任意の一文字を表すため。また、全角の `?’ は、文字通りクエッションマークとして認識され、デフォルトでは半角と全角を区別しないことにより、半角の `?’ も検索対象となるため。
「*」と「?」を検索する:Excel即効テクニック によると、
Excelでデータを検索するときに文字列の一部が分からなくても、ワイルドカードと呼ばれる特別な記号「*」と「?」を使って検索できるのはご存知の通り。「*」は任意の文字列を表し「?」は任意の1文字を表す。…
「*」と「?」を検索文字として指定するときは「~*」「~?」のように「~」を付けて入力すればよい
正規表現 – Wikipedia の書き方とは違うので気をつける必要がある。
2. LibreOffice で正規表現による検索
これに対して、LibreOffice では、正規表現で検索できる。
Writer/Using Wildcards in Text Searches/ja - LibreOffice Help によると、
編集 → 検索と置換を選択します。 ダイアログを展開するには、詳細オプションをクリックします。 正規表現チェックボックスを選択します。
素直に書けるので、検索するときに間違えることはない。
任意の 1 文字を表すワイルドカードは、ピリオド記号 (.) です。 直前の文字の任意回数の繰り返し (ゼロ回を含む) を示すワイルドカードは、アスタリスク記号です。
LibreOffice の方がシンプルで好きだなぁ。
3. SQL との比較
ちなみに、SQL では、任意の一文字を表すのに `_’ を用いる。
SQLの基礎「SELECT」文を覚えよう によると、
(4) LIKE条件
文字の検索条件を指定します。ここで、%と_(アンダースコア)は特殊な意味が割り当てられており、%は「任意の文字数の任意の文字」、_は「1文字の任意の文字」を表します。
Access は `?’, `_’ が任意の一文字を表す。
あいまいな条件抽出 - LIKE演算子 : SQL入門講座 によると、
アスタリスク (*)
パーセント(%)
0文字以上の任意の文字列を表す。疑問符(?)
アンダスコア(_)
任意の一文字を表す。
普段から使ってないと、混乱する。 (+_+)
0コメント:
コメントを投稿