トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

正規表現

 正規表現

ワイルドカード

  • ワイルドカードとは?
    • 他のカードの代用となるようなジョーカーのようなカードのこと。転じて、コンピュータ用語としては、任意の文字(列)を表現する記号をワイルドカードということが多い。たとえば、DOSやWindowsのコマンドラインでは、"?"は任意の一文字を、"*"は任意の文字列を表している。
    • 以下の図はWordの検索置換のワイルドカード検索で用いられる記号をキャプチャしたものである。

ファイルが存在しません。

  • ワイルドカードの問題
    • 用いるアプリケーションによって、記号や意味が異なる。
    • ひとつのアプリケーションで覚えた用法が他のアプリケーションで使うことができない。
    • →正規表現ならば多くのアプリケーションで共通

正規表現の概要

  • 正規表現とは(IT用語辞典より抜粋)
正規表現 【regular expression】
読み方 :  セイキヒョウゲン 
 文字列のパターンを表現する表記法。文字列の検索・置換を行なうときに利用される。
  • 正規表現を使える代表的なアプリケーション
    • grep
      • 文字列を検索するアプリケーション。
    • perl
      • Unixの世界で有名なスクリプト言語。Windows用のものもある。動的なウェブを作成する場合に、サーバ側で使われる言語としても有名。
    • その他
      • アプリケーション:awk、sed、多くのエディタ
      • 言語:Ruby、Python、Java、Javascript、TCL、.NET Frameworkの各言語
  • 正規表現の問題
    • 各アプリケーションで方言が存在する。

 正規表現の演算子

特殊文字

正規表現 意味
. 改行文字を除く任意の1文字
c メタキャラではない1文字
[a-z0-9] [ ]の中の任意の1文字(小文字大文字は別として扱う)
[^a-z0-9] [ ]の中にない任意の1文字
\w アルファベット、数字又は下線
\W アルファベット、数字、下線以外
\d 数字
\D 数字以外[^0-9]と同じ
\s 空白文字(スペース、タブ、改行)
\S 空白文字以外
\n 改行
\r リターン(復帰)
\t タブ
\d バックスペース
\o 8進数の値
\x 16進数の値

数量子

正規表現 意味
? 直前の文字が0個または1個
* 直前の文字が0個以上
+ 直前の文字が1個以上
{a} 直前の文字がa個
{a,(本当は半角)} 直前の文字がa個以上
{a,(本当は半角)b} 直前の文字がa個以上b個以下
?? 直前の文字が0個または1個
*? 直前の文字が0個以上
+? 直前の文字が1個以上

位置指定

正規表現 意味
^ 行頭
$ 行末
\b 単語の区切り
\B 単語の区切り以外

その他

正規表現 意味
\ 次のメタ文字をエスケープする( \. → "."自身を表わす)
() グループ化

 正規表現の演習

正規表現の演習用のページはこちらをクリック

最終更新時間:2006年08月27日 22時10分10秒