出版社内容情報
文書整理、データ解析、Web開発…あらゆるテキスト処理で作業効率アップできる、正規表現リファレンスの決定版。正規表現を使いこなすことで、検索、置換、集計、文書整理、データ解析、Webアプリ開発…あらゆるテキスト処理の現場で作業効率が大幅にアップします。
本書では、正規表現の役割や基本的な使い方を解説した「イントロダクション」、用途・対応言語・ツールがすぐにわかる「メタキャラクタリファレンス」、さらに“やりたいこと”に応じた目的引きが可能な「逆引きリファレンス」という構成で、一般的に使われる正規表現を網羅して紹介しています。
初版の改訂にあたり、今回の新版では最新のプログラミング言語に対応し、日本語環境をはじめ昨今の開発環境にあわせて解説を刷新しました。
正規表現を初めて利用する方から、日々の業務ですでに活用している方まで、目的別でやりたいことが見つけられてネットでは探せないこともわかる、すぐに使える正規表現逆引きリファレンスの決定版です。
★対応処理系
Sed/grep/vim/egrep/awk/Perl/PHP/Java/JavaScript/Python/.NET
01 INTRODUCTION
01-01 正規表現とは何か
01-02 正規表現の用途
01-03 正規表現をサポートする処理系
01-04 正規表現の歴史
01-05 正規表現の背景
01-06 正規表現と文字コード
01-07 正規表現用語リファレンス
02 処理系リファレンス
02-01 grep / egrep
02-01-01 文字列を検索する
02-02 sed
02-02-01 処理対象行を指定する
02-02-02 指定した文字列を置換する(s コマンド)
02-03 awk
02-03-01 指定した文字列を置換する
02-03-02 文字列に対するマッチを行う
02-03-03 処理対象レコードを指定する
02-04 vim
02-04-01 文字列を検索する
02-04-02 文字列を置換する
02-05 Perl
02-05-01 文字列に対するマッチを行う
02-05-02 正規表現オペランド/ オブジェクトを作成
02-05-03 文字列を置換する
02-06 PHP
02-06-01 文字列を検索する
02-06-02 配列から文字列を検索する
02-06-03 正規表現全体をエスケープする
02-06-04 文字列を置換する
02-07 Java
02-07-01 正規表現オブジェクトを生成する
02-07-02 文字列に対するマッチを行う
02-07-03 マッチした内容を取り出す
02-07-04 文字列の置換を行う
02-08 JavaScript
02-08-01 RegExp オブジェクトの生成
02-08-02 文字列に対するマッチを行う
02-08-03 文字列の置換を行う
02-09 Python
02-09-01 正規表現オブジェクトを生成する
02-09-02 文字列に対するマッチを行う
02-09-03 文字列の置換を行う
02-10 .NET
02-10-01 正規表現オブジェクトを生成する
02-10-02 文字列に対するマッチを行う
02-10-03 文字列の置換を行う
03 メタキャラクタリファレンス
03-01 基本正規表現
03-01-01 x 「 その文字」自身にマッチ
03-01-02 \ メタキャラクタの持つ特別な意味を失わせる
03-01-03 . 任意の1 文字にマッチ
03-01-04 [xyz] 指定された文字の中のいずれかにマッチ
03-01-05 (pattern)、\(pattern\) 部分正規表現のグルーピング
03-01-06 * 直前の正規表現と0 回以上一致
03-01-07 {min,max}、\{min,max\} 直前の正規表現と指定回数一致
03-01-08 $ 文字列の末尾、または行終端子の直前にマッチ
03-01-09 ^ 文字列の先頭、または行終端子の直後にマッチ
03-01-10 \n キャプチャ済みの部分正規表現に対する後方参照
03-01-11 [:..:] POSIX 文字クラス表現
03-01-12 [.ll.] 指定した照合要素にマッチ
03-01-13 [=e=] 指定した等価クラスに含まれる文字にマッチ
03-02 拡張正規表現
03-02-01 x?y、x\?y 正規表現x またはy にマッチ
03-02-02 +、\+ 直前の正規表現と1 回以上一致
03-02-03 ?、\?、\= 直前の正規表現と0 回または1 回一致
03-03 文字クラスエスケープ
03-03-01 \d、\D 任意の数字にマッチ / 数字以外の任意の1 字にマッチ
03-03-02 \s、\S 任意の空白にマッチ / 空白以外の任意の文字にマッチ
03-03-03 \w、\W 任意の単語構成文字にマッチ / 単語構成文字以外の任意の文字にマッチ
03-03-04 v、\V 任意の垂直方向の空白にマッチ / 垂直方向の空白以外の任意の1 字にマッチ
03-03-05 \h、\H 任意の水平方向の空白にマッチ / 水平方向の空白以外の任意の1 字にマッチ
03-04 制御文字とUnicode
03-04-01 \n、\a、\b、\e、\f、\r、\t 各種の制御文字にマッチ
03-04-02 \cx x で指定した制御文字にマッチ
03-04-03 \nnn、\onnn nnn に指定した8 進表現で示される文字にマッチ
03-04-04 \xnn n に指定した16 進表現で示される文字にマッチ
03-04-05 \unnnn、\x{n} n に指定したコードポイントで表現される文字にマッチ
03-04-06 \p{...}、\P{...} Unicode プロパティに基づく条件に合致する文字にマッチ
03-04-07 \N{...} 正式なUnicode 文字名で表現される文字にマッチ
03-04-08 \x Unicode の書記素クラスタにマッチ
03-05 特殊な量指定子
03-05-01 *?、\{-} 直前の正規表現と0 回以上一致(最短一致)
03-05-02 {min,max}?、\{-min,max} 直前の正規表現と指定回数一致(最短一致)
03-05-03 +? 直前の正規表現と1 回以上一致(最短一致)
03-05-04 ?? 直前の正規表現と0 回または1 回一致(最短一致)
03-05-05 *+ 直前の正規表現と0 回以上一致(強欲)
03-05-06 {min,max}+ 直前の正規表現と指定回数一致(強欲)
03-05-07 ++ 直前の正規表現と1 回以上一致(強欲)
03-05-08 ?+ 直前の正規表現と0 回または1 回一致(強欲)
03-06 アンカー
03-06-01 \b、\B 単語の境界にマッチ / 単語の境界以外にマッチ
03-06-02 \ 単語の先頭にマッチ / 単語の末尾にマッチ
03-06-03 \A 文字列の先頭にマッチ
03-06-04 \Z 文字列の末尾、あるいは文字列の末尾の行終端子の直前にマッチ
03-06-05 \z 文字列の末尾にマッチ
03-06-06 \G 前回のマッチの末尾にマッチ
03-06-07 \b{X} Unicode の書記素クラスタ/ 単語/ 文の境界にマッチ
03-07 グループ化構成体
03-07-01 (?:pattern) 部分正規表現のグルーピング(キャプチャなし)
03-07-02 (?=pattern) pattern がこの位置の右に存在する場合にマッチ(肯定先読み)
03-07-03 (?!pattern) pattern がこの位置の右に存在しない場合にマッチ(否定先読み)
03-07-04 (?pattern) マッチ文字列に対するバックトラックを禁止する
03-07-07 (?(condition)yes-pattern)
condition が成立した場合は、yes-pattern にマッチするかどうかを試す
03-07-08 (?Ppattern)、(?pattern) 名前付きキャプチャ
03-08 修飾子
03-08-01 i 修飾子 大文字/ 小文字の違いを無視する
03-08-02 c 修飾子 マッチに失敗しても、前回のマッチ位置をリセットしない
03-08-03 d 修飾子 UNIX ラインモードにする
03-08-04 e 修飾子 置換文字列をPerl コードとして評価し、その結果を利用する
03-08-05 g 修飾子 繰り返しマッチを行う
03-08-06 m 修飾子 マルチラインモードにする
03-08-07 o 修飾子 正規表現を1 回だけコンパイルする
03-08-08 s 修飾子 シングルラインモードにする
03-08-09 u 修飾子 Unicode サポートの強化
03-08-10 x 修飾子 パターン内で空白とコメントが利用可能となる
03-08-11 A 修飾子 強制的に文字列先頭にマッチさせる
03-08-12 D 修飾子 「$」を文字列の末尾にのみマッチさせる
03-08-13 U 修飾子
「欲張り」と「無欲」の役割を反転させる(PHP)、文字クラスのマッチ対象をUnicode ベースにする(Java)
03-08-14 X 修飾子 PCRE の付加機能を有効にする
03-08-15 CANON_EQ フラグ 等価とみなされる文字を同じ文字としてマッチ
03-08-16 (?modifier)、(?-modifier) これ以降、指定した処理モードを利用する
03-08-17 (?modifier:pattern)、(?-modifier:pattern)
指定した処理モードを部分正規表現に適用する(クロイスタ)
03-08-18 y 修飾子 前回のマッチ位置の直後にしかマッチさせない
03-08-19 a 修飾子 ASCII 文字のみのマッチングを行う
03-08-20 n 修飾子 名前付きキャプチャのみをキャプチャする
03-09 変換とエスケープ
03-09-01 \l、\u 次の文字を小文字/ 大文字として扱う
03-09-02 \Q ~\E 範囲内のすべての文字をエスケープする
03-09-03 \L ~\E、\U ~\E 範囲内のすべての文字を小文字/ 大文字として扱う
03-10 その他
03-10-01 (?# comment) 正規表現中のコメント
03-10-02 (?{code}) 埋め込まれたコードを実行する
03-10-03 (??{code}) 埋め込まれたコードを実行し、その結果を正規表現として使用
03-10-04 [a-z&&[bc]] ブラケット表現内での集合演算
03-10-05 vim 独自の文字クラス
03-10-06 vim 独自の文字クラスエスケープ
03-10-07 \& 両方の選択肢にマッチした場合のみマッチ
03-10-08 & マッチした内容に対する後方参照
03-10-09 \R、\N 各種の改行にマッチ / 改行以外の文字にマッチ
03-10-10 vim 独自のメタキャラクタ
04 逆引きリファレンス 基本編
04-01 基本
04-01-01 文字「a」が連続している部分にマッチさせたい
04-01-02 「a」が5 回続いた文字列にマッチさせたい
04-01-03 「Java SE」あるいは「JavaSE」にマッチさせたい
04-01-04 「boy」あるいは「girl」にマッチさせたい
04-01-05 「.」そのものにマッチさせたい
04-01-06 ある文字列から始まる行にマッチさせたい
04-01-07 ある文字列で終わる行にマッチさせたい
04-01-08 文字列の先頭/末尾にマッチさせたい
04-01-09 英数字にマッチさせたい
04-01-10 数字にマッチさせたい
04-01-11 空白にマッチさせたい
04-01-12 「book」という単語そのものにマッチさせたい
04-01-13 任意の単語にマッチさせたい
04-01-14 コード値で文字を指定したい
04-01-15 制御文字にマッチさせたい
04-01-16 大文字と小文字を区別せずにマッチさせたい
04-01-17 「a」以外の1 文字にマッチさせたい
04-01-18 「c」と「x」を除くアルファベット小文字にマッチさせたい
04-01-19 最初に現れる「/」までにマッチさせたい
04-01-20 指定したパターンが繰り返し登場するかどうかを調べたい
04-01-21 「Japan」にはマッチするが「Japanese」にはマッチしない
04-01-22 「社長」にはマッチするが「副社長」にはマッチしない
04-01-23 ひらがな/ カタカナ/ 漢字にマッチさせたい
05 逆引きリファレンス 応用編
05-00 応用編イントロダクション
05-00-00 応用編での正規表現について
05-01 一般
05-01-01 空白しかない行にマッチさせたい
05-01-02 まったく同じ文字/ 単語が連続する部分にマッチさせたい
05-01-03 文字列「abc」から始まらない行にマッチさせたい
05-01-04 文字列「abc」が含まれない行にマッチさせたい
05-01-05 大文字が3 文字以上連続した単語にマッチさせたい
05-01-06 ダブルクォートで括られた文字列にマッチさせたい
05-01-07 小数にマッチさせたい
05-01-08 指数表記の数値にマッチさせたい
05-01-09 3 桁区切りの数値にマッチさせたい
05-02 HTML/XML
05-02-01 URL にマッチさせたい
05-02-02 HTML 内の色指定にマッチさせたい
05-02-03 HTML のa 要素からhref 属性の値を抜き出したい
05-02-04 HTML の見出し要素の内容を抜き出したい
05-02-05 HTML/XML の開始タグにマッチさせたい
05-02-06 type 属性がhidden 以外のinput 要素にマッチさせたい
05-03 日付/ 時刻
05-03-01 年月日の表記にマッチさせたい
05-03-02 「19:58:02」形式にマッチさせたい
05-04 プログラミング
05-04-01 郵便番号にマッチさせたい
05-04-02 電話番号にマッチさせたい
05-04-03 「キー= 値」という形式にマッチさせたい
05-04-04 Windows のフルパス形式にマッチさせたい
05-04-05 Windows の特殊ファイル名にマッチさせたい
05-04-06 IP アドレス(IPv4)にマッチさせたい
05-04-07 ホスト名(FQDN)にマッチさせたい
05-04-08 パーセントエンコーディングにマッチさせたい
05-04-09 エンコードされたメールヘッダにマッチさせたい
05-04-10 クエリ文字列を分解したい
05-04-11 メールアドレスにマッチさせたい
05-05 プログラム解析
05-05-01 C プログラムからインクルードされたファイルを抜き出したい
05-05-02 スクリプトからヒア・ドキュメントを抜き出したい
06 逆引きリファレンス 置換編
06-00 置換編イントロダクション
06-00-00 置換編での正規表現について
06-01 文書作成
06-01-01 行と行の間に空行を追加したい
06-01-02 文の区切りで改行を入れたい
06-01-03 行の先頭及び末尾の空白を削除したい
06-01-04 カンマの後ろのスペースを1 つに統一したい
06-01-05 ピリオドの後ろのスペースを2 つに統一したい
06-01-06 段落を保持したまま複数行を1 行にしたい
06-01-07 英数字/ 英単語と日本語の文字の間にスペースを挾みたい
06-01-08 単語の先頭の文字を大文字に変換したい
06-01-09 各単語の先頭1 文字から頭字語を作成したい
06-02 HTML/XML
06-02-01 「sample.html#p1」から、# より前/ 後の文字列を削除したい
06-02-02 「&」をすべて「&」に置換したい
06-02-03 XML の「< 要素名/>」を「< 要素名>」に変換したい
06-02-04 タグの外部にある「green」をすべて「yellow」に変換したい
06-02-05 HTML/XML のコメントを削除したい
06-03 プログラミング
06-03-01 クエリ文字列から値が入っていないフォームデータを排除したい
06-03-02 「product_name」を「productName」に変換したい
06-03-03 「PRODUCT_NAME」を「productName」に変換したい
06-03-04 メールの引用符を取り除きたい
06-03-05 ファイル名から拡張子を除去したい
06-03-06 パス名からファイル名部分以外を除去したい
06-04 プログラム解析
06-04-01 Java プログラムからコメントを削除したい
06-04-02 Perl プログラムからコメントを削除したい
06-04-03 C プログラムからコメントを削除したい
APPENDIX
AP-01 ASCII
AP-01-01 ASCII の制御文字一覧
AP-02 Unicode
AP-02-01 Unicode 一般カテゴリ一覧
INDEX
佐藤 竜一[サトウ リュウイチ]
著・文・その他
内容説明
正規表現を使いこなせれば、検索、置換、集計、文書整理、データ解析、Webアプリ開発…あらゆるテキスト処理の現場で、作業効率が大幅にアップします。本書は、正規表現の役割や基本的な使い方を解説した「イントロダクション」、用途・対応言語・ツールがすぐにわかる「メタキャラクタリファレンス」、さらに“やりたいこと”に応じた目的引きが可能な「逆引きリファレンス」という構成で、一般的に使われる正規表現を網羅して紹介しています。初版の改訂にあたり、今回の新版では最新のプログラミング言語・開発環境に応じて解説を刷新しました。正規表現を初めて利用する方から、日々の業務ですでに活用している方まで、目的別でやりたいことが見つけられてネットでは探せないこともわかる、すぐに使える正規表現逆引きリファレンスの決定版です。
目次
01 INTRODUCTION
02 処理系リファレンス
03 メタキャラクタリファレンス
04 逆引きリファレンス 基本編
05 逆引きリファレンス 応用編
06 逆引きリファレンス 置換編
APPENDIX
著者等紹介
佐藤竜一[サトウリュウイチ]
1995年、図書館情報大学図書館情報学部卒業。プログラマ/アーキテクトとして各種システムの企画・構築から開発標準策定、アプリケーション開発基盤の構築を手がける傍ら、テクニカルライターとして書籍の執筆や翻訳に従事(本データはこの書籍が刊行された当時に掲載されていたものです)
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。
感想・レビュー
※以下の感想・レビューは、株式会社ブックウォーカーの提供する「読書メーター」によるものです。
hibimoriSitaro
跼