語頭と語末を表す
この記事では、語頭と語末を表すメタ文字である \<(バックスラッシュ・小なり) と \>(バックスラッシュ・大なり) について説明します。
\< \>
\<(バックスラッシュ・小なり) は語頭を表し、\>(バックスラッシュ・大なり) は語末を表します。
なお、この記事でも以下のテキストを例に操作を説明します。
- hello 2014
- vi editor
- vi editor.
- vi editor
- vim Editor
- Vim Editor
- a
- aa
- aaa
- aaaa
- aaaaa
- .
- *
- ^
- $
- /
- \
- [
- ]
- <
- >
- {
- }
逆エスケープ処理とでも言うべきか
この記事で紹介する \<(バックスラッシュ・小なり) と \>(バックスラッシュ・大なり) は、今までの記事で説明したメタ文字とは表記規則が異なります。 これまでのメタ文字と異なる点は、\(バックスラッシュ) を前に付けることでメタ文字として扱われるという点です。
今まで紹介したメタ文字は、前の記事で説明したように \(バックスラッシュ) を付けることで、特別な意味を打ち消すことができます。 例えば、
^
という正規表現は、行頭を表します。 ^(キャレット) という文字そのものを表すには、
\^
のように、メタ文字の前に \(バックスラッシュ) を入力する必要があります。
しかし、ここで紹介する \<(バックスラッシュ・小なり) と \>(バックスラッシュ・大なり) は、
\<
のように \(バックスラッシュ) が付くことでメタ文字としての特別な意味を持ちます。
逆に、\(バックスラッシュ) を付けずに、
<
と表記すると、<(小なり) や >(大なり) の文字そのものに一致します。
つまり、『エスケープの処理の逆』とでも表現すればいいでしょうか。
語頭を表す \<(バックスラッシュ・小なり) と語末を表す \>(バックスラッシュ・大なり)
正規表現では、\<(バックスラッシュ・小なり) は語頭を表し、\>(バックスラッシュ・大なり) は語末を表します。 これらのメタ文字を使用することで、『数字だけの単語を検索する』というような検索が可能になります。
なお、語頭とは単語の先頭のことであり、単語の最初の文字のことではありません。 同様に、語末は単語の末尾のことであり、単語の最後の文字のことではありません。 つまり、語頭も語末も見える文字のことではありません。
では、実際に \<(バックスラッシュ・小なり) と \>(バックスラッシュ・大なり) を含めたテキスト検索を実施してみましょう。

上図のように文字カーソルは文書の先頭にあると仮定して説明を始めます。
まずは、語頭を検索してみましょう。
では、キーボードから /\<<Enter> を入力してください。
/\<<Enter>

上図のように文字カーソルが1行目の "2014" の位置に移動します。
このように、次の単語の先頭に移動します。
さらに、順方向の次の一致へ移動してみましょう。
キーボードから n を入力してください。
n

上図のように文字カーソルが2行目の "vi" の位置に移動します。
続いて、数字だけの単語を検索してみましょう。
では、キーボードから /\<[0-9][0-9]*\><Enter> を入力してください。
/\<[0-9][0-9]*\><Enter>

上図のように文字カーソルが1行目の "2014" の位置に移動します。
このように、特定の文字で構成される単語を検索することもできます。





