トップ > 初級編 > その他 > 正規表現(初級編) >
語頭と語末

  

語頭と語末を表す

この記事では、語頭と語末を表すメタ文字である \<(円マーク・小なり) と \>(円マーク・大なり) について説明します

  
\(円マーク) は日本のみで使われています。
  
\(円マーク) は英語環境での \(バックスラッシュ) のことです。
\<
\>

\<(円マーク・小なり) は語頭を表し、\>(円マーク・大なり) は語末を表します。

なお、この記事でも以下のテキストを例に操作を説明します

  1. hello 2014
  2. vi editor
  3. vi editor.

  4. vi editor
  5. vim Editor
  6. Vim Editor
  7. a
  8. aa
  9. aaa
  10. aaaa
  11. aaaaa
  12. .
  13. *
  14. ^
  15. $
  16. /
  17. \
  18. [
  19. ]
  20. <
  21. >
  22. {
  23. }
 
  
3行目の先頭には、空白を1つ入れてあります。
  
4行目は空行です。
  
5行目の先頭には、空白を2つ入れてあります。

逆エスケープ処理とでも言うべきか

この記事で紹介する \<(円マーク・小なり) と \>(円マーク・大なり) は、今までの記事で説明したメタ文字とは表記規則が異なります。 これまでのメタ文字と異なる点は、\(円マーク) を前に付けることでメタ文字として扱われるという点です。

今まで紹介したメタ文字は、前の記事で説明したように \(円マーク) を付けることで、特別な意味を打ち消すことができます。 例えば、

^

という正規表現は、行頭を表します。 ^(キャレット) という文字そのものを表すには、

\^

のように、メタ文字の前に \(円マーク) を入力する必要があります

しかし、ここで紹介する \<(円マーク・小なり) と \>(円マーク・大なり) は、

\<

のように \(円マーク) が付くことでメタ文字としての特別な意味を持ちます

逆に、\(円マーク) を付けずに、

<

と表記すると、<(小なり) や >(大なり) の文字そのものに一致します

つまり、『エスケープの処理の逆』とでも表現すればいいでしょうか

語頭を表す \<(円マーク・小なり) と語末を表す \>(円マーク・大なり)

正規表現では、\<(円マーク・小なり) は語頭を表し、\>(円マーク・大なり) は語末を表します。 これらのメタ文字を使用することで、『数字だけの単語を検索する』というような検索が可能になります。

なお、語頭とは単語の先頭のことであり、単語の最初の文字のことではありません。 同様に、語末は単語の末尾のことであり、単語の最後の文字のことではありません。 つまり、語頭も語末も見える文字のことではありません。

では、実際に \<(円マーク・小なり) と \>(円マーク・大なり) を含めたテキスト検索を実施してみましょう。

文字カーソルは文書の先頭にある
文字カーソルは文書の先頭にある

上図のように文字カーソルは文書の先頭にあると仮定して説明を始めます

まずは、語頭を検索してみましょう。

では、キーボードから /\<<Enter> を入力してください。

/\<<Enter>
1行目の 2014 の位置へ移動する
1行目の 2014 の位置へ移動する

上図のように文字カーソルが1行目の "2014" の位置に移動します

このように、次の単語の先頭に移動します。

さらに、順方向の次の一致へ移動してみましょう。

キーボードから n を入力してください。

n
2行目の vi の位置へ移動する
2行目の vi の位置へ移動する

上図のように文字カーソルが2行目の "vi" の位置に移動します

続いて、数字だけの単語を検索してみましょう。

では、キーボードから /\<[0-9][0-9]*\><Enter> を入力してください。

/\<[0-9][0-9]*\><Enter>
1行目の 2014 の位置へ移動する
1行目の 2014 の位置へ移動する

上図のように文字カーソルが1行目の "2014" の位置に移動します

このように、特定の文字で構成される単語を検索することもできます。

  
  

まとめ

正規表現では、\<(円マーク・小なり) は語頭を表し、\>(円マーク・大なり) は語末を表します。

なお、語頭とは単語の先頭のことであり、単語の最初の文字のことではありません。 同様に、語末は単語の末尾のことであり、単語の最後の文字のことではありません。

正規表現 意味
\<
(円マーク・小なり)
語頭を表す
\>
(円マーク・大なり)
語末を表す
 
メニュー