diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/API.ja | 562 | ||||
-rw-r--r-- | doc/FAQ.ja | 14 | ||||
-rw-r--r-- | doc/RE | 7 | ||||
-rw-r--r-- | doc/RE.ja | 482 |
4 files changed, 538 insertions, 527 deletions
@@ -1,89 +1,89 @@ -���֥����ե����� Version 6.1.0 2016/08/22 +鬼車インターフェース Version 6.1.0 2016/08/22 #include <oniguruma.h> # int onig_initialize(OnigEncoding use_encodings[], int num_encodings) - �饤�֥��ν���� - �ǽ�˸ƤӽФ�ɬ�פ����롣 + ライブラリの初期化 + 最初に呼び出す必要がある。 - * onig_init() ���ѻ� + * onig_init() は廃止 - ���� - 1 use_encodings: ���Ѥ���ʸ�������ǥ������� - 2 num_encodings: ʸ�������ǥ��ο� + 引数 + 1 use_encodings: 使用する文字エンコーディングの配列 + 2 num_encodings: 文字エンコーディングの数 # int onig_error_code_to_str(UChar* err_buf, int err_code, ...) - ���顼��å�������������롣 + エラーメッセージを取得する。 - ���δؿ���onig_new()�η�̤��Ф��ƸƤӽФ����ˤϡ�onig_new()��pattern������ - �����������������˸ƤӽФ��ʤ���Фʤ�ʤ��� + この関数を、onig_new()の結果に対して呼び出す場合には、onig_new()のpattern引数を + メモリ解放するよりも前に呼び出さなければならない。 - ���ェλ�����: ���顼��å�����ʸ����ΥХ���Ĺ + 正常終了戻り値: エラーメッセージ文字列のバイト長 - ���� - 1 err_buf: ���顼��å��������Ǽ�����ΰ� - (ɬ�פʥ�����: ONIG_MAX_ERROR_MESSAGE_LEN) - 2 err_code: ���顼������ - 3 err_info (optional): onig_new()��err_info + 引数 + 1 err_buf: エラーメッセージを格納する領域 + (必要なサイズ: ONIG_MAX_ERROR_MESSAGE_LEN) + 2 err_code: エラーコード + 3 err_info (optional): onig_new()のerr_info # void onig_set_warn_func(OnigWarnFunc func) - �ٹ����δؿ��åȤ��롣 + 警告通知関数をセットする。 - �ٹ�: + 警告: '[', '-', ']' in character class without escape. ']' in pattern without escape. - ���� - 1 func: �ٹ�ؿ� void (*func)(char* warning_message) + 引数 + 1 func: 警告関数 void (*func)(char* warning_message) # void onig_set_verb_warn_func(OnigWarnFunc func) - �ܺٷٹ����δؿ��åȤ��롣 + 詳細警告通知関数をセットする。 - �ܺٷٹ�: + 詳細警告: redundant nested repeat operator. - ���� - 1 func: �ܺٷٹ�ؿ� void (*func)(char* warning_message) + 引数 + 1 func: 詳細警告関数 void (*func)(char* warning_message) # int onig_new(regex_t** reg, const UChar* pattern, const UChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* err_info) - ����ɽ�����֥�������(regex)��������롣 + 正規表現オブジェクト(regex)を作成する。 - ���ェλ�����: ONIG_NORMAL + 正常終了戻り値: ONIG_NORMAL - ���� - 1 reg: �������줿����ɽ�����֥������Ȥ��֤����ɥ쥹 - 2 pattern: ����ɽ���ѥ�����ʸ���� - 3 pattern_end: ����ɽ���ѥ�����ʸ����ν�ü���ɥ쥹(pattern + pattern length) - 4 option: ����ɽ������ѥ�������ץ���� + 引数 + 1 reg: 作成された正規表現オブジェクトを返すアドレス + 2 pattern: 正規表現パターン文字列 + 3 pattern_end: 正規表現パターン文字列の終端アドレス(pattern + pattern length) + 4 option: 正規表現コンパイル時オプション - ONIG_OPTION_NONE ���ץ����ʤ� + ONIG_OPTION_NONE オプションなし ONIG_OPTION_SINGLELINE '^' -> '\A', '$' -> '\Z' - ONIG_OPTION_MULTILINE '.'�����Ԥ˥ޥå����� - ONIG_OPTION_IGNORECASE ۣ��ޥå� ���� - ONIG_OPTION_EXTEND �ѥ������ĥ���� - ONIG_OPTION_FIND_LONGEST ��Ĺ�ޥå� - ONIG_OPTION_FIND_NOT_EMPTY ���ޥå���̵�� + ONIG_OPTION_MULTILINE '.'が改行にマッチする + ONIG_OPTION_IGNORECASE 曖昧マッチ オン + ONIG_OPTION_EXTEND パターン拡張形式 + ONIG_OPTION_FIND_LONGEST 最長マッチ + ONIG_OPTION_FIND_NOT_EMPTY 空マッチを無視 ONIG_OPTION_NEGATE_SINGLELINE ONIG_SYNTAX_POSIX_BASIC, ONIG_SYNTAX_POSIX_EXTENDED, - ONIG_SYNTAX_PERL, ONIG_SYNTAX_PERL_NG, ONIG_SYNTAX_JAVA�� - �ǥե���Ȥ�ͭ����ONIG_OPTION_SINGLELINE�ꥢ���롣 + ONIG_SYNTAX_PERL, ONIG_SYNTAX_PERL_NG, ONIG_SYNTAX_JAVAで + デフォルトで有効なONIG_OPTION_SINGLELINEをクリアする。 - ONIG_OPTION_DONT_CAPTURE_GROUP ̾���դ���ͼ�����Τ���� - ONIG_OPTION_CAPTURE_GROUP ̾��̵����ͼ��������� + ONIG_OPTION_DONT_CAPTURE_GROUP 名前付き捕獲式集合のみ捕獲 + ONIG_OPTION_CAPTURE_GROUP 名前無し捕獲式集合も捕獲 - 5 enc: ʸ�������ǥ��� + 5 enc: 文字エンコーディング ONIG_ENCODING_ASCII ASCII ONIG_ENCODING_ISO_8859_1 ISO 8859-1 @@ -116,9 +116,9 @@ ONIG_ENCODING_BIG5 Big5 ONIG_ENCODING_GB18030 GB18030 - �ޤ��ϡ��桼�����������OnigEncodingType�ǡ����Υ��ɥ쥹 + または、ユーザが定義したOnigEncodingTypeデータのアドレス - 6 syntax: ����ɽ���ѥ�����ʸˡ��� + 6 syntax: 正規表現パターン文法定義 ONIG_SYNTAX_ASIS plain text ONIG_SYNTAX_POSIX_BASIC POSIX Basic RE @@ -128,15 +128,15 @@ ONIG_SYNTAX_GNU_REGEX GNU regex ONIG_SYNTAX_JAVA Java (Sun java.util.regex) ONIG_SYNTAX_PERL Perl - ONIG_SYNTAX_PERL_NG Perl + ̾���դ���ͼ����� + ONIG_SYNTAX_PERL_NG Perl + 名前付き捕獲式集合 ONIG_SYNTAX_RUBY Ruby ONIG_SYNTAX_DEFAULT default (== Ruby) onig_set_default_syntax() - �ޤ��ϡ��桼�����������OnigSyntaxType�ǡ����Υ��ɥ쥹 + または、ユーザが定義したOnigSyntaxTypeデータのアドレス - 7 err_info: ���顼������֤�����Υ��ɥ쥹 - onig_error_code_to_str()�λ����ܤΰ����Ȥ��ƻ��Ѥ��� + 7 err_info: エラー情報を返すためのアドレス + onig_error_code_to_str()の三番目の引数として使用する @@ -145,44 +145,44 @@ OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* err_info) - ����ɽ�����֥�������(regex)��������롣 - reg���ΰ�������dz�����Ƥʤ��� + 正規表現オブジェクト(regex)を作成する。 + regの領域を内部で割り当てない。 - ���ェλ�����: ONIG_NORMAL + 正常終了戻り値: ONIG_NORMAL # int onig_new_deluxe(regex_t** reg, const UChar* pattern, const UChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo) - ����ɽ�����֥�������(regex)��������롣 - ���δؿ��ϡ�onig_new()�Υǥ�å����ǡ� + 正規表現オブジェクト(regex)を作成する。 + この関数は、onig_new()のデラックス版。 - ���ェλ�����: ONIG_NORMAL + 正常終了戻り値: ONIG_NORMAL - ���� - 1 reg: �������줿����ɽ�����֥������Ȥ��֤����ɥ쥹 - 2 pattern: ����ɽ���ѥ�����ʸ���� - 3 pattern_end: ����ɽ���ѥ�����ʸ����ν�ü���ɥ쥹(pattern + pattern length) - 4 ci: ����ѥ������ + 引数 + 1 reg: 作成された正規表現オブジェクトを返すアドレス + 2 pattern: 正規表現パターン文字列 + 3 pattern_end: 正規表現パターン文字列の終端アドレス(pattern + pattern length) + 4 ci: コンパイル情報 - ci->num_of_elements: ci�����ǿ� (���ߤ��ǤǤ�: 5) - ci->pattern_enc: �ѥ�����ʸ�����ʸ�������ǥ��� - ci->target_enc: �о�ʸ�����ʸ�������ǥ��� - ci->syntax: ����ɽ���ѥ�����ʸˡ��� - ci->option: ����ɽ������ѥ�������ץ���� - ci->case_fold_flag: ONIG_OPTION_IGNORECASE�⡼�ɤǤ� - ʸ��ۣ��ޥå�����ӥåȥե饰 + ci->num_of_elements: ciの要素数 (現在の版では: 5) + ci->pattern_enc: パターン文字列の文字エンコーディング + ci->target_enc: 対象文字列の文字エンコーディング + ci->syntax: 正規表現パターン文法定義 + ci->option: 正規表現コンパイル時オプション + ci->case_fold_flag: ONIG_OPTION_IGNORECASEモードでの + 文字曖昧マッチ指定ビットフラグ - ONIGENC_CASE_FOLD_MIN: �Ǿ� - ONIGENC_CASE_FOLD_DEFAULT: �Ǿ� + ONIGENC_CASE_FOLD_MIN: 最小 + ONIGENC_CASE_FOLD_DEFAULT: 最小 onig_set_default_case_fold_flag() - 5 err_info: ���顼������֤�����Υ��ɥ쥹 - onig_error_code_to_str()�λ����ܤΰ����Ȥ��ƻ��Ѥ��� + 5 err_info: エラー情報を返すためのアドレス + onig_error_code_to_str()の三番目の引数として使用する - �ۤʤ�ʸ�������ǥ����Ȥ߹�碌�ϡ��ʲ��ξ��ˤΤߵ�����롣 + 異なる文字エンコーディングの組み合わせは、以下の場合にのみ許される。 pattern_enc: ASCII, ISO_8859_1 target_enc: UTF16_BE, UTF16_LE, UTF32_BE, UTF32_LE @@ -196,64 +196,64 @@ # void onig_free(regex_t* reg) - ����ɽ�����֥������ȤΥ����������롣 + 正規表現オブジェクトのメモリを解放する。 - ���� - 1 reg: ����ɽ�����֥������� + 引数 + 1 reg: 正規表現オブジェクト # void onig_free_body(regex_t* reg) - ����ɽ�����֥������ȤΥ����������롣(reg���Ȥ��ΰ�������) + 正規表現オブジェクトのメモリを解放する。(reg自身の領域を除いて) - ���� - 1 reg: ����ɽ�����֥������� + 引数 + 1 reg: 正規表現オブジェクト # int onig_search(regex_t* reg, const UChar* str, const UChar* end, const UChar* start, const UChar* range, OnigRegion* region, OnigOptionType option) - ����ɽ����ʸ���������������̤ȥޥå��ΰ���֤��� + 正規表現で文字列を検索し、検索結果とマッチ領域を返す。 - ���ェλ�����: �ޥå����� (p - str >= 0) - ��������: ONIG_MISMATCH (< 0) + 正常終了戻り値: マッチ位置 (p - str >= 0) + 検索失敗: ONIG_MISMATCH (< 0) - ���� - 1 reg: ����ɽ�����֥������� - 2 str: �����о�ʸ���� - 3 end: �����о�ʸ����ν�ü���ɥ쥹 - 4 start: �����о�ʸ����θ�����Ƭ���֥��ɥ쥹 - 5 range: �����о�ʸ����θ�����λ���֥��ɥ쥹 - ����õ�� (start <= õ�������ʸ���� < range) - ����õ�� (range <= õ�������ʸ���� <= start) - 6 region: �ޥå��ΰ����(region) (NULL��������) - 7 option: ���������ץ���� + 引数 + 1 reg: 正規表現オブジェクト + 2 str: 検索対象文字列 + 3 end: 検索対象文字列の終端アドレス + 4 start: 検索対象文字列の検索先頭位置アドレス + 5 range: 検索対象文字列の検索終了位置アドレス + 前方探索 (start <= 探索される文字列 < range) + 後方探索 (range <= 探索される文字列 <= start) + 6 region: マッチ領域情報(region) (NULLも許される) + 7 option: 検索時オプション - ONIG_OPTION_NOTBOL ʸ�������Ƭ(str)���Ƭ�ȴ������ʤ� - ONIG_OPTION_NOTEOL ʸ����ν�ü(end)������ȴ������ʤ� - ONIG_OPTION_POSIX_REGION region������POSIX API��regmatch_t[]�ˤ��� + ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない + ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない + ONIG_OPTION_POSIX_REGION region引数をPOSIX APIのregmatch_t[]にする # int onig_match(regex_t* reg, const UChar* str, const UChar* end, const UChar* at, OnigRegion* region, OnigOptionType option) - ʸ����λ�����֤ǥޥå���Ԥ�����̤ȥޥå��ΰ���֤��� + 文字列の指定位置でマッチングを行い、結果とマッチ領域を返す。 - ���ェλ�����: �ޥå������Х���Ĺ (>= 0) + 正常終了戻り値: マッチしたバイト長 (>= 0) not match: ONIG_MISMATCH ( < 0) - ���� - 1 reg: ����ɽ�����֥������� - 2 str: �����о�ʸ���� - 3 end: �����о�ʸ����ν�ü���ɥ쥹 - 4 at: �����о�ʸ����θ������ɥ쥹 - 5 region: �ޥå��ΰ����(region) (NULL��������) - 6 option: ���������ץ���� + 引数 + 1 reg: 正規表現オブジェクト + 2 str: 検索対象文字列 + 3 end: 検索対象文字列の終端アドレス + 4 at: 検索対象文字列の検索アドレス + 5 region: マッチ領域情報(region) (NULLも許される) + 6 option: 検索時オプション - ONIG_OPTION_NOTBOL ʸ�������Ƭ(str)���Ƭ�ȴ������ʤ� - ONIG_OPTION_NOTEOL ʸ����ν�ü(end)������ȴ������ʤ� - ONIG_OPTION_POSIX_REGION region������POSIX API��regmatch_t[]�ˤ��� + ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない + ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない + ONIG_OPTION_POSIX_REGION region引数をPOSIX APIのregmatch_t[]にする # int onig_scan(regex_t* reg, const UChar* str, const UChar* end, @@ -261,127 +261,127 @@ int (*scan_callback)(int, int, OnigRegion*, void*), void* callback_arg) - ����ɽ����ʸ�������ơ��ޥå�������˥�����Хå��ؿ���ƤӽФ��� + 正規表現で文字列をスキャンして、マッチングする毎にコールバック関数を呼び出す。 - ���ェλ: �ޥå���� (0���ޤ��) - ���顼: ���顼������ (< 0) - ����: ������Хå��ؿ������ʳ�������ͤ��֤����Ȥ��������ͤ�����ͤȤ������� + 正常終了: マッチ回数 (0回も含める) + エラー: エラーコード (< 0) + 中断: コールバック関数が0以外の戻り値を返したとき、その値を戻り値として中断 - ���� - 1 reg: ����ɽ�����֥������� - 2 str: �����о�ʸ���� - 3 end: �����о�ʸ����ν�ü���ɥ쥹 - 4 region: �ޥå��ΰ����(region) (NULL��������) - 5 option: ���������ץ���� - 6 scan_callback: ������Хå��ؿ� - 7 callback_arg: ������Хå��ؿ����Ϥ�����ղð����� + 引数 + 1 reg: 正規表現オブジェクト + 2 str: 検索対象文字列 + 3 end: 検索対象文字列の終端アドレス + 4 region: マッチ領域情報(region) (NULLも許される) + 5 option: 検索時オプション + 6 scan_callback: コールバック関数 + 7 callback_arg: コールバック関数に渡される付加引数値 # OnigRegion* onig_region_new(void) - �ޥå��ΰ����(region)��������롣 + マッチ領域情報(region)を作成する。 # void onig_region_free(OnigRegion* region, int free_self) - �ޥå��ΰ����(region)�ǻ��Ѥ���Ƥ�������������롣 + マッチ領域情報(region)で使用されているメモリを解放する。 - ���� - 1 region: �ޥå��ΰ���֥������� - 2 free_self: [1: region���Ȥ�ޤ�����Ʋ���, 0: region���Ȥϲ������ʤ�] + 引数 + 1 region: マッチ領域情報オブジェクト + 2 free_self: [1: region自身を含めて全て解放, 0: region自身は解放しない] # void onig_region_copy(OnigRegion* to, OnigRegion* from) - �ޥå��ΰ����(region)��ʣ�����롣 + マッチ領域情報(region)を複製する。 - ���� - 1 to: �о��ΰ� - 2 from: ���ΰ� + 引数 + 1 to: 対象領域 + 2 from: 元領域 # void onig_region_clear(OnigRegion* region) - �ޥå��ΰ����(region)����̣�ꥢ���롣 + マッチ領域情報(region)の中味をクリアする。 - ���� - 1 region: �о��ΰ� + 引数 + 1 region: 対象領域 # int onig_region_resize(OnigRegion* region, int n) - �ޥå��ΰ����(region)����ͼ�����(���롼��)�����ѹ����롣 + マッチ領域情報(region)の捕獲式集合(グループ)数を変更する。 - ���ェλ�����: ONIG_NORMAL + 正常終了戻り値: ONIG_NORMAL - ���� - 1 region: �о��ΰ� - 2 n: ������������ + 引数 + 1 region: 対象領域 + 2 n: 新しいサイズ # int onig_name_to_group_numbers(regex_t* reg, const UChar* name, const UChar* name_end, int** num_list) - ���ꤷ��̾�����Ф���̾���դ���ͼ�����(���롼��)�� - ���롼���ֹ�ꥹ�Ȥ��֤��� - ̾���դ���ͼ�����ϡ�(?<name>....)�ˤ�ä�����Ǥ��롣 + 指定した名前に対する名前付き捕獲式集合(グループ)の + グループ番号リストを返す。 + 名前付き捕獲式集合は、(?<name>....)によって定義できる。 - ���ェλ�����: ���ꤵ�줿̾�����Ф��륰�롼�� - (�� /(?<x>..)(?<x>..)/ ==> 2) - ̾�����Ф��륰�롼�פ�¸�ߤ��ʤ�: -1 + 正常終了戻り値: 指定された名前に対するグループ数 + (例 /(?<x>..)(?<x>..)/ ==> 2) + 名前に対するグループが存在しない: -1 - ���� - 1 reg: ����ɽ�����֥������� - 2 name: ��ͼ�����(���롼��)̾ - 3 name_end: ��ͼ�����(���롼��)̾�ν�ü���ɥ쥹 - 4 num_list: �ֹ�ꥹ�Ȥ��֤����ɥ쥹 + 引数 + 1 reg: 正規表現オブジェクト + 2 name: 捕獲式集合(グループ)名 + 3 name_end: 捕獲式集合(グループ)名の終端アドレス + 4 num_list: 番号リストを返すアドレス # int onig_name_to_backref_number(regex_t* reg, const UChar* name, const UChar* name_end, OnigRegion *region) - ���ꤵ�줿̾���θ�������(\k<name>)���Ф�����ͼ�����(���롼��)���ֹ���֤��� - ̾�����Ф��ơ�ʣ���Υޥå��ΰ褬ͭ���Ǥ���С�������κ�����ֹ���֤��� - ̾�����Ф�����ͼ����礬��Ĥ����ʤ��Ȥ��ˤϡ��б�����ޥå��ΰ褬ͭ���� - �ɤ����˴ط��ʤ��������ֹ���֤���(���äơ�region�ˤ�NULL���Ϥ��Ƥ�褤��) + 指定された名前の後方参照(\k<name>)に対する捕獲式集合(グループ)の番号を返す。 + 名前に対して、複数のマッチ領域が有効であれば、その中の最大の番号を返す。 + 名前に対する捕獲式集合が一個しかないときには、対応するマッチ領域が有効か + どうかに関係なく、その番号を返す。(従って、regionにはNULLを渡してもよい。) - ���ェλ�����: �ֹ� + 正常終了戻り値: 番号 - ���� - 1 reg: ����ɽ�����֥������� - 2 name: ��ͼ�����(���롼��)̾ - 3 name_end: ��ͼ�����(���롼��)̾�ν�ü���ɥ쥹 - 4 region: search/match��̤Υޥå��ΰ� + 引数 + 1 reg: 正規表現オブジェクト + 2 name: 捕獲式集合(グループ)名 + 3 name_end: 捕獲式集合(グループ)名の終端アドレス + 4 region: search/match結果のマッチ領域 # int onig_foreach_name(regex_t* reg, int (*func)(const UChar*, const UChar*, int,int*,regex_t*,void*), void* arg) - ���Ƥ�̾�����Ф��ƥ�����Хå��ؿ��ƤӽФ���¹Ԥ��롣 + 全ての名前に対してコールバック関数呼び出しを実行する。 - ���ェλ�����: 0 - ���顼: ������Хå��ؿ�������� + 正常終了戻り値: 0 + エラー: コールバック関数の戻り値 - ���� - 1 reg: ����ɽ�����֥������� - 2 func: ������Хå��ؿ� + 引数 + 1 reg: 正規表現オブジェクト + 2 func: コールバック関数 func(name, name_end, <number of groups>, <group number's list>, reg, arg); - func��0�ʳ����ͤ��֤��ȡ�����ʹߤΥ�����Хå��ϹԤʤ鷺�� - ��λ���롣 + funcが0以外の値を返すと、それ以降のコールバックは行なわずに + 終了する。 - 3 arg: func���Ф����ɲð��� + 3 arg: funcに対する追加引数 # int onig_number_of_names(regex_t* reg) - �ѥ��������������줿̾���ο����֤��� - ��Ĥ�̾����¿������ϰ�Ĥȴ������� + パターン中で定義された名前の数を返す。 + 一個の名前の多重定義は一個と看做す。 - ���� - 1 reg: ����ɽ�����֥������� + 引数 + 1 reg: 正規表現オブジェクト # OnigEncoding onig_get_encoding(regex_t* reg) @@ -389,157 +389,157 @@ # OnigCaseFoldType onig_get_case_fold_flag(regex_t* reg) # OnigSyntaxType* onig_get_syntax(regex_t* reg) - ����ɽ�����֥������Ȥ��Ф��ơ��б������ͤ��֤��� + 正規表現オブジェクトに対して、対応する値を返す。 - ���� - 1 reg: ����ɽ�����֥������� + 引数 + 1 reg: 正規表現オブジェクト # int onig_number_of_captures(regex_t* reg) - �ѥ��������������줿��ͥ��롼�פο����֤��� + パターン中で定義された捕獲グループの数を返す。 - ���� - 1 reg: ����ɽ�����֥������� + 引数 + 1 reg: 正規表現オブジェクト # int onig_number_of_capture_histories(regex_t* reg) - �ѥ��������������줿�������(?@...)�ο����֤��� + パターン中で定義された捕獲履歴(?@...)の数を返す。 - ���Ѥ���ʸˡ���������ǽ��ͭ��(ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY) - �Ǥʤ���С��������ǽ�ϻ��ѤǤ��ʤ��� + 使用する文法で捕獲履歴機能が有効(ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY) + でなければ、捕獲履歴機能は使用できない。 - ���� - 1 reg: ����ɽ�����֥������� + 引数 + 1 reg: 正規表現オブジェクト # OnigCaptureTreeNode* onig_get_capture_tree(OnigRegion* region) - �������ǡ����Υ롼�ȥΡ��ɤ��֤��� + 捕獲履歴データのルートノードを返す。 - �ޥå������Ԥ��Ƥ�����ˤϡ������ͤ�����Ǥ��롣 + マッチが失敗している場合には、この値は不定である。 - ���� - 1 region: �ޥå��ΰ� + 引数 + 1 region: マッチ領域 # int onig_capture_tree_traverse(OnigRegion* region, int at, int(*func)(int,int,int,int,int,void*), void* arg) - �������ǡ����ڤ��ƥ�����Хå����롣 + 捕獲履歴データ木を巡回してコールバックする。 - ���ェλ�����: 0 - ���顼: ������Хå��ؿ�������� + 正常終了戻り値: 0 + エラー: コールバック関数の戻り値 - ���� - 1 region: �ޥå��ΰ� - 2 at: ������Хå���Ԥʤ������ߥ� + 引数 + 1 region: マッチ領域 + 2 at: コールバックを行なうタイミング ONIG_TRAVERSE_CALLBACK_AT_FIRST: - �ǽ�˥�����Хå����ơ��ҥΡ��ɤ��� + 最初にコールバックして、子ノードを巡回 ONIG_TRAVERSE_CALLBACK_AT_LAST: - �ҥΡ��ɤ��ơ�������Хå� + 子ノードを巡回して、コールバック ONIG_TRAVERSE_CALLBACK_AT_BOTH: - �ǽ�˥�����Хå����ơ��ҥΡ��ɤ��Ǹ�ˤ⤦���٥�����Хå� + 最初にコールバックして、子ノードを巡回、最後にもう一度コールバック - 3 func: ������Хå��ؿ� - func��0�ʳ����ͤ��֤��ȡ�����ʹߤν��ϹԤʤ鷺�� - ��λ���롣 + 3 func: コールバック関数 + funcが0以外の値を返すと、それ以降の巡回は行なわずに + 終了する。 int func(int group, int beg, int end, int level, int at, void* arg) - group: ���롼���ֹ� - beg: �ޥå����ϰ��� - end �ޥå���λ���� - level: �ͥ��ȥ�٥� (0����) - at: ������Хå����ƤӽФ��줿�����ߥ� + group: グループ番号 + beg: マッチ開始位置 + end マッチ終了位置 + level: ネストレベル (0から) + at: コールバックが呼び出されたタイミング ONIG_TRAVERSE_CALLBACK_AT_FIRST ONIG_TRAVERSE_CALLBACK_AT_LAST - arg: �ɲð��� + arg: 追加引数 - 4 arg; func���Ф����ɲð��� + 4 arg; funcに対する追加引数 # int onig_noname_group_capture_is_active(regex_t* reg) - ̾���ʤ����������͵�ǽ��ͭ�����ɤ������֤��� + 名前なし式集合の捕獲機能が有効かどうかを返す。 - ͭ��: 1 - ̵��: 0 + 有効: 1 + 無効: 0 - ���� - 1 reg: ����ɽ�����֥������� + 引数 + 1 reg: 正規表現オブジェクト - ���ץ�����ONIG_OPTION_DONT_CAPTURE_GROUP��ON --> ̵�� + オプションのONIG_OPTION_DONT_CAPTURE_GROUPがON --> 無効 - �ѥ�����̾���Ĥ����������Ѥ��Ƥ��� - AND ����ʸˡ�ǡ�ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP��ON - AND ���ץ�����ONIG_OPTION_CAPTURE_GROUP��OFF - --> ̵�� + パターンが名前つき式集合を使用している + AND 使用文法で、ONIG_SYN_CAPTURE_ONLY_NAMED_GROUPがON + AND オプションのONIG_OPTION_CAPTURE_GROUPがOFF + --> 無効 - �嵭�ʳ��ξ�� --> ͭ�� + 上記以外の場合 --> 有効 # UChar* onigenc_get_prev_char_head(OnigEncoding enc, const UChar* start, const UChar* s) - ʸ�����ʬ����ʸ������֤��֤��� + 文字一個分前の文字列位置を返す。 - ���� - 1 enc: ʸ�������ǥ��� - 2 start: ʸ�������Ƭ���ɥ쥹 - 3 s: ʸ������ΰ��� + 引数 + 1 enc: 文字エンコーディング + 2 start: 文字列の先頭アドレス + 3 s: 文字列中の位置 # UChar* onigenc_get_left_adjust_char_head(OnigEncoding enc, const UChar* start, const UChar* s) - ʸ������Ƭ�Х��Ȱ��֤ˤʤ�褦�˺�¦��Ĵ���������ɥ쥹���֤��� + 文字の先頭バイト位置になるように左側に調整したアドレスを返す。 - ���� - 1 enc: ʸ�������ǥ��� - 2 start: ʸ�������Ƭ���ɥ쥹 - 3 s: ʸ������ΰ��� + 引数 + 1 enc: 文字エンコーディング + 2 start: 文字列の先頭アドレス + 3 s: 文字列中の位置 # UChar* onigenc_get_right_adjust_char_head(OnigEncoding enc, const UChar* start, const UChar* s) - ʸ������Ƭ�Х��Ȱ��֤ˤʤ�褦�˱�¦��Ĵ���������ɥ쥹���֤��� + 文字の先頭バイト位置になるように右側に調整したアドレスを返す。 - ���� - 1 enc: ʸ�������ǥ��� - 2 start: ʸ�������Ƭ���ɥ쥹 - 3 s: ʸ������ΰ��� + 引数 + 1 enc: 文字エンコーディング + 2 start: 文字列の先頭アドレス + 3 s: 文字列中の位置 # int onigenc_strlen(OnigEncoding enc, const UChar* s, const UChar* end) # int onigenc_strlen_null(OnigEncoding enc, const UChar* s) - ʸ�����ʸ�������֤��� + 文字列の文字数を返す。 # int onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s) - ʸ����ΥХ��ȿ����֤��� + 文字列のバイト数を返す。 # int onig_set_default_syntax(OnigSyntaxType* syntax) - �ǥե���Ȥ�����ɽ���ѥ�����ʸˡ�åȤ��롣 + デフォルトの正規表現パターン文法をセットする。 - ���� - 1 syntax: ����ɽ���ѥ�����ʸˡ + 引数 + 1 syntax: 正規表現パターン文法 # void onig_copy_syntax(OnigSyntaxType* to, OnigSyntaxType* from) - ����ɽ���ѥ�����ʸˡ�ԡ����롣 + 正規表現パターン文法をコピーする。 - ���� - 1 to: �о� - 2 from: �� + 引数 + 1 to: 対象 + 2 from: 元 # unsigned int onig_get_syntax_op(OnigSyntaxType* syntax) @@ -552,35 +552,35 @@ # void onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior) # void onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options) - ����ɽ���ѥ�����ʸˡ�����Ǥ�/�������롣 + 正規表現パターン文法の要素を参照/取得する。 - ���� - 1 syntax: ����ɽ���ѥ�����ʸˡ - 2 op, op2, behavior, options: ���Ǥ��� + 引数 + 1 syntax: 正規表現パターン文法 + 2 op, op2, behavior, options: 要素の値 # void onig_copy_encoding(OnigEncoding to, OnigEncoding from) - ʸ�������ǥ��ԡ����롣 + 文字エンコーディングをコピーする。 - ���� - 1 to: �о� - 2 from: �� + 引数 + 1 to: 対象 + 2 from: 元 # int onig_set_meta_char(OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code) - �ʸ������ꤷ�������ɥݥ�����ͤ˥��åȤ��롣 - ONIG_SYN_OP_VARIABLE_META_CHARACTERS������ɽ���ѥ�����ʸˡ��ͭ���� - �ʤäƤ��ʤ����ˤϡ�����������ʸ��������ơ������ǻ��ꤷ���ʸ���� - ��ǽ���ʤ���(�ȹ��ߤ�ʸˡ�Ǥ�ͭ���ˤ��Ƥ��ʤ���) + メタ文字を指定したコードポイント値にセットする。 + ONIG_SYN_OP_VARIABLE_META_CHARACTERSが正規表現パターン文法で有効に + なっていない場合には、エスケープ文字を除いて、ここで指定したメタ文字は + 機能しない。(組込みの文法では有効にしていない。) - ���ェλ�����: ONIG_NORMAL + 正常終了戻り値: ONIG_NORMAL - ���� - 1 syntax: �о�ʸˡ - 2 what: �ʸ����ǽ�λ��� + 引数 + 1 syntax: 対象文法 + 2 what: メタ文字機能の指定 ONIG_META_CHAR_ESCAPE ONIG_META_CHAR_ANYCHAR @@ -589,79 +589,79 @@ ONIG_META_CHAR_ONE_OR_MORE_TIME ONIG_META_CHAR_ANYCHAR_ANYTIME - 3 code: �ʸ���Υ����ɥݥ���� �ޤ��� ONIG_INEFFECTIVE_META_CHAR. + 3 code: メタ文字のコードポイント または ONIG_INEFFECTIVE_META_CHAR. # OnigCaseFoldType onig_get_default_case_fold_flag() - �ǥե���Ȥ�case fold�ե饰��������롣 + デフォルトのcase foldフラグを取得する。 # int onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag) - �ǥե���Ȥ�case fold�ե饰�åȤ��롣 + デフォルトのcase foldフラグをセットする。 - ���� - 1 case_fold_flag: case fold�ե饰 + 引数 + 1 case_fold_flag: case foldフラグ # unsigned int onig_get_match_stack_limit_size(void) - �ޥå������å��������κ����ͤ��֤��� - (�ǥե����: 0 == ̵����) + マッチスタックサイズの最大値を返す。 + (デフォルト: 0 == 無制限) # int onig_set_match_stack_limit_size(unsigned int size) - �ޥå������å��������κ����ͤ���ꤹ�롣 - (size = 0: ̵����) + マッチスタックサイズの最大値を指定する。 + (size = 0: 無制限) - ���ェλ�����: ONIG_NORMAL + 正常終了戻り値: ONIG_NORMAL # int onig_unicode_define_user_property(const char* name, OnigCodePoint* ranges)) - ������Unicode�ץ��ѥƥ���������롣 - (���δؿ��ϥ���åɥ����դǤϤʤ�) + 新しいUnicodeプロパティを定義する。 + (この関数はスレッドセーフではない) - ���� - 1 name: �ץ��ѥƥ�̾ (ASCII�����ɤΤߡ� ʸ�� ' ', '-', '_' ��̵�뤵��롣) - 2 ranges: �ץ��ѥƥ������ɥݥ�����ϰ� - (�ǽ�����Ǥ��ϰϤο�) + 引数 + 1 name: プロパティ名 (ASCIIコードのみ。 文字 ' ', '-', '_' は無視される。) + 2 ranges: プロパティコードポイント範囲 + (最初の要素は範囲の数) [num-of-ranges, 1st-range-start, 1st-range-end, 2nd-range-start... ] - * ���δؿ���Ƥ����ǡ�ranges���ѹ�/�˲����ʤ����� + * この関数を呼んだ後で、rangesを変更/破壊しないこと - ���ェλ�����: ONIG_NORMAL + 正常終了戻り値: ONIG_NORMAL # unsigned int onig_get_parse_depth_limit(void) - �Ƶ��ѡ��������κ��翼�����֤��� - (�ǥե����: regint.h ���������Ƥ��� DEFAULT_PARSE_DEPTH_LIMIT�����ߤ� 4096) + 再帰パース処理の最大深さを返す。 + (デフォルト: regint.h で定義されている DEFAULT_PARSE_DEPTH_LIMIT。現在は 4096) # int onig_set_parse_depth_limit(unsigned int depth) - �Ƶ��ѡ��������κ��翼������ꤹ�롣 - (depth = 0: regint.h ��������줿�ǥե�����ͤ����ꤹ�롣) + 再帰パース処理の最大深さを指定する。 + (depth = 0: regint.h で定義されたデフォルト値に設定する。) - ���ェλ�����: ONIG_NORMAL + 正常終了戻り値: ONIG_NORMAL # int onig_end(void) - �饤�֥��λ��Ѥ�λ���롣 + ライブラリの使用を終了する。 - ���ェλ�����: ONIG_NORMAL + 正常終了戻り値: ONIG_NORMAL - onig_init()����ٸƤӽФ��Ƥ⡢�����˺�����������ɽ�����֥������� - ����Ѥ��뤳�ȤϤǤ��ʤ��� + onig_init()を再度呼び出しても、以前に作成した正規表現オブジェクト + を使用することはできない。 # const char* onig_version(void) - �С������ʸ������֤���(�� "5.0.3") + バージョン文字列を返す。(例 "5.0.3") // END @@ -1,22 +1,22 @@ FAQ 2016/04/06 -1. ��Ĺ�ޥå� +1. 最長マッチ - onig_new()����ǡ�ONIG_OPTION_FIND_LONGEST���ץ���� - ����Ѥ���к�Ĺ�ޥå��ˤʤ롣 + onig_new()の中で、ONIG_OPTION_FIND_LONGESTオプション + を使用すれば最長マッチになる。 2. CR + LF - DOS�β���(CR(0x0c) + LF(0x0a)��Ϣ³) + DOSの改行(CR(0x0c) + LF(0x0a)の連続) - regenc.h����Ρ��ʲ�����ʬ��ͭ���ˤ��롣 + regenc.hの中の、以下の部分を有効にする。 /* #define USE_CRNL_AS_LINE_TERMINATOR */ -3. ���ꥹ�� +3. メーリングリスト - ���֤˴ؤ�����ꥹ�Ȥ�¸�ߤ��ʤ��� + 鬼車に関するメーリングリストは存在しない。 //END @@ -1,4 +1,4 @@ -Oniguruma Regular Expressions Version 6.3.0 2017/05/19 +Oniguruma Regular Expressions Version 6.4.0 2017/06/28 syntax: ONIG_SYNTAX_RUBY (default) @@ -237,6 +237,8 @@ syntax: ONIG_SYNTAX_RUBY (default) \n \k<n> \k'n' (n >= 1) backreference the nth group in the regexp \k<-n> \k'-n' (n >= 1) backreference the nth group counting backwards from the referring position + \k<+n> \k'+n' (n >= 1) backreference the nth group counting + forwards from the referring position \k<name> \k'name' backreference a group with the specified name When backreferencing with a name that is assigned to more than one groups, @@ -286,8 +288,11 @@ syntax: ONIG_SYNTAX_RUBY (default) that group." \g<n> \g'n' (n >= 1) call the nth group + \g<0> \g'0' call zero (call the total regexp) \g<-n> \g'-n' (n >= 1) call the nth group counting backwards from the calling position + \g<+n> \g'+n' (n >= 1) call the nth group counting forwards from + the calling position \g<name> \g'name' call the group with the specified name * Left-most recursive calls are not allowed. @@ -1,74 +1,74 @@ -���� ����ɽ�� Version 6.3.0 2017/05/19 +鬼車 正規表現 Version 6.4.0 2017/06/28 -����ʸˡ: ONIG_SYNTAX_RUBY (������) +使用文法: ONIG_SYNTAX_RUBY (既定値) -1. �������� +1. 基本要素 - \ ���� (����������) ����ɽ�������ͭ��/̵�������� - | ����� - (...) ������ (���롼��) - [...] ʸ������ (ʸ�����饹) + \ 退避修飾 (エスケープ) 正規表現記号の有効/無効の制御 + | 選択子 + (...) 式集合 (グループ) + [...] 文字集合 (文字クラス) -2. ʸ�� +2. 文字 - \t ��ʿ���� (0x09) - \v ��ľ���� (0x0B) - \n ���� (0x0A) - \r ���� (0x0D) - \b ������� (0x08) - \f ���� (0x0C) - \a �� (0x07) - \e ���� (0x1B) - \nnn Ȭ�ʿ�ɽ�� ��沽�Х�����(�ΰ���) - \o{17777777777} ��ĥȬ�ʿ�ɽ�� �����ɥݥ������ - \xHH ��ϻ�ʿ�ɽ�� ��沽�Х�����(�ΰ���) - \x{7HHHHHHH} ��ĥ��ϻ�ʿ�ɽ�� �����ɥݥ������ - \cx ����ʸ��ɽ�� �����ɥݥ������ - \C-x ����ʸ��ɽ�� �����ɥݥ������ - \M-x Ķ (x|0x80) �����ɥݥ������ - \M-\C-x Ķ + ����ʸ��ɽ�� �����ɥݥ������ + \t 水平タブ (0x09) + \v 垂直タブ (0x0B) + \n 改行 (0x0A) + \r 復帰 (0x0D) + \b 後退空白 (0x08) + \f 改頁 (0x0C) + \a 鐘 (0x07) + \e 退避修飾 (0x1B) + \nnn 八進数表現 符号化バイト値(の一部) + \o{17777777777} 拡張八進数表現 コードポイント値 + \xHH 十六進数表現 符号化バイト値(の一部) + \x{7HHHHHHH} 拡張十六進数表現 コードポイント値 + \cx 制御文字表現 コードポイント値 + \C-x 制御文字表現 コードポイント値 + \M-x 超 (x|0x80) コードポイント値 + \M-\C-x 超 + 制御文字表現 コードポイント値 - �� \b�ϡ�ʸ��������ǤΤ�ͭ�� + ※ \bは、文字集合内でのみ有効 -3. ʸ���� +3. 文字種 - . Ǥ��ʸ�� (���Ԥ����) + . 任意文字 (改行を除く) - \w ñ�칽��ʸ�� + \w 単語構成文字 - Unicode�ʳ��ξ��: - �ѿ���, "_" ����� ¿�Х���ʸ���� + Unicode以外の場合: + 英数字, "_" および 多バイト文字。 - Unicode�ξ��: + Unicodeの場合: General_Category -- (Letter|Mark|Number|Connector_Punctuation) - \W ��ñ�칽��ʸ�� + \W 非単語構成文字 - \s ����ʸ�� + \s 空白文字 - Unicode�ʳ��ξ��: + Unicode以外の場合: \t, \n, \v, \f, \r, \x20 - Unicode�ξ��: + Unicodeの場合: 0009, 000A, 000B, 000C, 000D, 0085(NEL), General_Category -- Line_Separator -- Paragraph_Separator -- Space_Separator - \S �����ʸ�� + \S 非空白文字 - \d 10�ʿ��� + \d 10進数字 - Unicode�ξ��: General_Category -- Decimal_Number + Unicodeの場合: General_Category -- Decimal_Number - \D ��10�ʿ��� + \D 非10進数字 - \h 16�ʿ��� [0-9a-fA-F] + \h 16進数字 [0-9a-fA-F] - \H ��16�ʿ��� + \H 非16進数字 Character Property @@ -79,95 +79,95 @@ property-name: - + ���ƤΥ����ǥ���ͭ�� + + 全てのエンコーディングで有効 Alnum, Alpha, Blank, Cntrl, Digit, Graph, Lower, Print, Punct, Space, Upper, XDigit, Word, ASCII, - + EUC-JP, Shift_JIS��ͭ�� + + EUC-JP, Shift_JISで有効 Hiragana, Katakana - + UTF8, UTF16, UTF32��ͭ�� - doc/UNICODE_PROPERTIES���� + + UTF8, UTF16, UTF32で有効 + doc/UNICODE_PROPERTIES参照 -4. �̻���� +4. 量指定子 - ��ĥ�� + 欲張り - ? ���ޤ������� - * ����ʾ� - + ���ʾ� - {n,m} n��ʾ�m��ʲ� - {n,} n��ʾ� - {,n} ����ʾ�n��ʲ� ({0,n}) - {n} n�� + ? 一回または零回 + * 零回以上 + + 一回以上 + {n,m} n回以上m回以下 + {n,} n回以上 + {,n} 零回以上n回以下 ({0,n}) + {n} n回 - ̵�� + 無欲 - ?? ���ޤ������� - *? ����ʾ� - +? ���ʾ� - {n,m}? n��ʾ�m��ʲ� - {n,}? n��ʾ� - {,n}? ����ʾ�n��ʲ� (== {0,n}?) + ?? 一回または零回 + *? 零回以上 + +? 一回以上 + {n,m}? n回以上m回以下 + {n,}? n回以上 + {,n}? 零回以上n回以下 (== {0,n}?) - ���� (��ĥ��ǡ������֤�������������ϲ���餹�褦�ʸ���ƻ�Ԥʤ�) + 強欲 (欲張りで、繰り返しに成功した後は回数を減らすような後退再試行をしない) - ?+ ���ޤ������� - *+ ����ʾ� - ++ ���ʾ� + ?+ 一回または零回 + *+ 零回以上 + ++ 一回以上 - ({n,m}+, {n,}+, {n}+ �ϡ�ONIG_SYNTAX_JAVA�ǤΤ߶��ߤʻ����) + ({n,m}+, {n,}+, {n}+ は、ONIG_SYNTAX_JAVAでのみ強欲な指定子) - ��. /a*+/ === /(?>a*)/ + 例. /a*+/ === /(?>a*)/ -5. �� +5. 錨 - ^ ��Ƭ - $ ���� - \b ñ�춭�� - \B ��ñ�춭�� - \A ʸ������Ƭ - \Z ʸ�����������ޤ���ʸ���������β��Ԥ�ľ�� - \z ʸ�������� - \G �ȹ糫�ϰ��� + ^ 行頭 + $ 行末 + \b 単語境界 + \B 非単語境界 + \A 文字列先頭 + \Z 文字列末尾、または文字列末尾の改行の直前 + \z 文字列末尾 + \G 照合開始位置 -6. ʸ������ +6. 文字集合 - ^... ���� (����ͥ���ٱ黻��) - x-y �ϰ� (x����y�ޤ�) - [...] ���� (ʸ��������ʸ������) - ..&&.. �ѱ黻 (^�μ���ͥ���٤��㤤�黻��) + ^... 否定 (最低優先度演算子) + x-y 範囲 (xからyまで) + [...] 集合 (文字集合内文字集合) + ..&&.. 積演算 (^の次に優先度が低い演算子) - ��. [a-w&&[^c-g]z] ==> ([a-w] and ([^c-g] or z)) ==> [abh-w] + 例. [a-w&&[^c-g]z] ==> ([a-w] and ([^c-g] or z)) ==> [abh-w] - �� '[', '-', ']'��ʸ����������̾�ʸ���ΰ�̣�ǻ��Ѥ��������ˤϡ� - ������ʸ����'\'���������ʤ���Фʤ�ʤ��� + ※ '[', '-', ']'を、文字集合内で通常文字の意味で使用したい場合には、 + これらの文字を'\'で退避修飾しなければならない。 - POSIX�֥饱�å� ([:xxxxx:], ���� [:^xxxxx:]) + POSIXブラケット ([:xxxxx:], 否定 [:^xxxxx:]) - Unicode�ʳ��ξ��: + Unicode以外の場合: - alnum �ѿ��� - alpha �ѻ� + alnum 英数字 + alpha 英字 ascii 0 - 127 blank \t, \x20 cntrl digit 0-9 - graph ¿�Х���ʸ��������ޤ� + graph 多バイト文字全部を含む lower - print ¿�Х���ʸ��������ޤ� + print 多バイト文字全部を含む punct space \t, \n, \v, \f, \r, \x20 upper xdigit 0-9, a-f, A-F - word �ѿ���, "_" ����� ¿�Х���ʸ�� + word 英数字, "_" および 多バイト文字 - Unicode�ξ��: + Unicodeの場合: alnum Letter | Mark | Decimal_Number alpha Letter | Mark @@ -190,67 +190,69 @@ -7. ��ĥ������ +7. 拡張式集合 - (?#...) ���� - (?imx-imx) ��Ω���ץ���� - i: ��ʸ����ʸ���ȹ� - m: ʣ���� - x: ��ĥ���� - (?imx-imx:��) �����ץ���� + (?#...) 注釈 + (?imx-imx) 孤立オプション + i: 大文字小文字照合 + m: 複数行 + x: 拡張形式 + (?imx-imx:式) 式オプション - (��) ��ͼ����� - (?:��) ����ͼ����� + (式) 捕獲式集合 + (?:式) 非捕獲式集合 - (?=��) ���ɤ� - (?!��) �������ɤ� - (?<=��) ����ɤ� - (?<!��) ��������ɤ� + (?=式) 先読み + (?!式) 否定先読み + (?<=式) 戻り読み + (?<!式) 否定戻り読み - ����ɤߤμ��ϸ���ʸ��Ĺ�Ǥʤ���Фʤ�ʤ��� - ���������Ǿ�̤�����Ҥ����ϰۤʤä�ʸ��Ĺ��������롣 - ��. (?<=a|bc) �ϵ���. (?<=aaa(?:b|cd)) ���Ե��� + 戻り読みの式は固定文字長でなければならない。 + しかし、最上位の選択子だけは異なった文字長が許される。 + 例. (?<=a|bc) は許可. (?<=aaa(?:b|cd)) は不許可 - ��������ɤߤǤϡ���ͼ�����ϵ�����ʤ����� - ����ͼ�����ϵ�����롣 + 否定戻り読みでは、捕獲式集合は許されないが、 + 非捕獲式集合は許される。 - (?>��) ����Ū������ - �����Τ��̲ᤷ���Ȥ���������Ǥθ���ƻ�Ԥ�Ԥʤ�ʤ� + (?>式) 原子的式集合 + 式全体を通過したとき、式の中での後退再試行を行なわない - (?<name>��), (?'name'��) - ̾���դ���ͼ����� - �������̾���������Ƥ�(�������)�� - (̾����ñ�칽��ʸ���Ǥʤ���Фʤ�ʤ���) + (?<name>式), (?'name'式) + 名前付き捕獲式集合 + 式集合に名前を割り当てる(定義する)。 + (名前は単語構成文字でなければならない。) - ̾�������Ǥʤ�����ͼ������Ʊ�ͤ��ֹ�������Ƥ��롣 - �ֹ���꤬�ػߤ���Ƥ��ʤ����� (10. ��ͼ����� ��) - �ΤȤ��ϡ�̾����Ȥ�ʤ����ֹ�Ǥ⻲�ȤǤ��롣 + 名前だけでなく、捕獲式集合と同様に番号も割り当てられる。 + 番号指定が禁止されていない状態 (10. 捕獲式集合 を参照) + のときは、名前を使わないで番号でも参照できる。 - ʣ���μ������Ʊ��̾����Ϳ���뤳�Ȥϵ�����Ƥ��롣 - ���ξ��ˤϡ�����̾������Ѥ����������Ȥϲ�ǽ�Ǥ��뤬�� - ��ʬ���ƽФ��ϤǤ��ʤ��� + 複数の式集合に同じ名前を与えることは許されている。 + この場合には、この名前を使用した後方参照は可能であるが、 + 部分式呼出しはできない。 -8. �������� +8. 後方参照 - \n �ֹ���껲�� (n >= 1) - \k<n> �ֹ���껲�� (n >= 1) - \k'n' �ֹ���껲�� (n >= 1) - \k<-n> �����ֹ���껲�� (n >= 1) - \k'-n' �����ֹ���껲�� (n >= 1) - \k<name> ̾�����껲�� - \k'name' ̾�����껲�� + \n 番号指定参照 (n >= 1) + \k<n> 番号指定参照 (n >= 1) + \k'n' 番号指定参照 (n >= 1) + \k<-n> 相対番号指定参照 (n >= 1) + \k'-n' 相対番号指定参照 (n >= 1) + \k<+n> 相対番号指定参照 (n >= 1) + \k'+n' 相対番号指定参照 (n >= 1) + \k<name> 名前指定参照 + \k'name' 名前指定参照 - ̾�����껲�Ȥǡ�����̾����ʣ���μ������¿���������Ƥ�����ˤϡ� - �ֹ���礭�������礫��ͥ��Ū�˻��Ȥ���롣 - (�ޥå����ʤ��Ȥ��ˤ��ֹ�ξ����������礬���Ȥ����) + 名前指定参照で、その名前が複数の式集合で多重定義されている場合には、 + 番号の大きい式集合から優先的に参照される。 + (マッチしないときには番号の小さい式集合が参照される) - �� �ֹ���껲�Ȥϡ�̾���դ���ͼ����礬������졢 - ���� ONIG_OPTION_CAPTURE_GROUP�����ꤵ��Ƥ��ʤ����ˤϡ� - �ػߤ���롣(10. ��ͼ����� ��) + ※ 番号指定参照は、名前付き捕獲式集合が定義され、 + かつ ONIG_OPTION_CAPTURE_GROUPが指定されていない場合には、 + 禁止される。(10. 捕獲式集合 を参照) - �ͥ��ȥ�٥��դ��������� + ネストレベル付き後方参照 level: 0, 1, 2, ... @@ -264,14 +266,14 @@ \k'name+level' \k'name-level' - �������Ȥΰ��֤�������Ū����ʬ���ƽФ��ͥ��ȥ�٥����ꤷ�ơ����Υ�٥�Ǥ� - ����ͤȤ��롣 + 後方参照の位置から相対的な部分式呼出しネストレベルを指定して、そのレベルでの + 捕獲値を参照する。 - ��-1. + 例-1. /\A(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))\z/.match("reer") - ��-2. + 例-2. r = Regexp.compile(<<'__REGEXP__'.strip, Regexp::EXTENDED) (?<element> \g<stag> \g<content>* \g<etag> ){0} @@ -286,82 +288,86 @@ -9. ��ʬ���ƽФ� ("����ů���ڥ����") +9. 部分式呼出し ("田中哲スペシャル") - \g<name> ̾������ƽФ� - \g'name' ̾������ƽФ� - \g<n> �ֹ����ƽФ� (n >= 1) - \g'n' �ֹ����ƽФ� (n >= 1) - \g<-n> �����ֹ����ƽФ� (n >= 1) - \g'-n' �����ֹ����ƽФ� (n >= 1) + \g<name> 名前指定呼出し + \g'name' 名前指定呼出し + \g<n> 番号指定呼出し (n >= 1) + \g'n' 番号指定呼出し (n >= 1) + \g<0> 番号指定呼出し(全体呼び出し) + \g'0' 番号指定呼出し(全体呼び出し) + \g<-n> 相対番号指定呼出し (n >= 1) + \g'-n' 相対番号指定呼出し (n >= 1) + \g<+n> 相対番号指定呼出し (n >= 1) + \g'+n' 相対番号指定呼出し (n >= 1) - �� �Ǻ����֤ǤκƵ��ƽФ��϶ػߤ���롣 - ��. (?<name>a|\g<name>b) => error + ※ 最左位置での再帰呼出しは禁止される。 + 例. (?<name>a|\g<name>b) => error (?<name>a|b\g<name>c) => OK - �� �ֹ����ƽФ��ϡ�̾���դ���ͼ����礬������졢 - ���� ONIG_OPTION_CAPTURE_GROUP�����ꤵ��Ƥ��ʤ����ˤϡ� - �ػߤ���롣 (10. ��ͼ����� ��) + ※ 番号指定呼出しは、名前付き捕獲式集合が定義され、 + かつ ONIG_OPTION_CAPTURE_GROUPが指定されていない場合には、 + 禁止される。 (10. 捕獲式集合 を参照) - �� �ƤӽФ��줿������Υ��ץ������֤��ƽФ�¦�Υ��ץ������֤ȰۤʤäƤ��� - �Ȥ����ƤӽФ��줿¦�Υ��ץ������֤�ͭ���Ǥ��롣 + ※ 呼び出された式集合のオプション状態が呼出し側のオプション状態と異なっている + とき、呼び出された側のオプション状態が有効である。 - ��. (?-i:\g<name>)(?i:(?<name>a)){0} �� "A" �˾ȹ��������롣 + 例. (?-i:\g<name>)(?i:(?<name>a)){0} は "A" に照合成功する。 -10. ��ͼ����� +10. 捕獲式集合 - ��ͼ�����(...)�ϡ��ʲ��ξ��˱����ƿ����Ѳ����롣 - (̾���դ���ͼ�������Ѳ����ʤ�) + 捕獲式集合(...)は、以下の条件に応じて振舞が変化する。 + (名前付き捕獲式集合は変化しない) - case 1. /.../ (̾���դ���ͼ�������Ի��ѡ����ץ����ʤ�) + case 1. /.../ (名前付き捕獲式集合は不使用、オプションなし) - (...) �ϡ���ͼ�����Ȥ��ư����롣 + (...) は、捕獲式集合として扱われる。 - case 2. /.../g (̾���դ���ͼ�������Ի��ѡ����ץ���� 'g'�����) + case 2. /.../g (名前付き捕獲式集合は不使用、オプション 'g'を指定) - (...) �ϡ�����ͼ�����Ȥ��ư����롣 + (...) は、非捕獲式集合として扱われる。 - case 3. /..(?<name>..)../ (̾���դ���ͼ�����ϻ��ѡ����ץ����ʤ�) + case 3. /..(?<name>..)../ (名前付き捕獲式集合は使用、オプションなし) - (...) �ϡ�����ͼ�����Ȥ��ư����롣 - �ֹ���껲��/�ƤӽФ����Ե��ġ� + (...) は、非捕獲式集合として扱われる。 + 番号指定参照/呼び出しは不許可。 - case 4. /..(?<name>..)../G (̾���դ���ͼ�����ϻ��ѡ����ץ���� 'G'�����) + case 4. /..(?<name>..)../G (名前付き捕獲式集合は使用、オプション 'G'を指定) - (...) �ϡ���ͼ�����Ȥ��ư����롣 - �ֹ���껲��/�ƤӽФ��ϵ��ġ� + (...) は、捕獲式集合として扱われる。 + 番号指定参照/呼び出しは許可。 - â�� + 但し g: ONIG_OPTION_DONT_CAPTURE_GROUP G: ONIG_OPTION_CAPTURE_GROUP - ('g'��'G'���ץ����ϡ�ruby-dev ML�ǵ������줿��) + ('g'と'G'オプションは、ruby-dev MLで議論された。) - �����ο���ΰ�̣�ϡ� - ̾���դ���ͤ�̾��̵����ͤ�Ʊ���˻��Ѥ���ɬ�����Τ�����̤Ͼ��ʤ��Ǥ����� - �Ȥ�����ͳ����ͤ���줿��ΤǤ��롣 + これらの振舞の意味は、 + 名前付き捕獲と名前無し捕獲を同時に使用する必然性のある場面は少ないであろう + という理由から考えられたものである。 ----------------------------- -�䵭 1. ʸˡ��¸���ץ���� +補記 1. 文法依存オプション + ONIG_SYNTAX_RUBY - (?m): �����䵭��(.)�ϲ��ԤȾȹ����� + (?m): 終止符記号(.)は改行と照合成功 - + ONIG_SYNTAX_PERL �� ONIG_SYNTAX_JAVA - (?s): �����䵭��(.)�ϲ��ԤȾȹ����� - (?m): ^ �ϲ��Ԥ�ľ��˾ȹ礹�롢$ �ϲ��Ԥ�ľ���˾ȹ礹�� + + ONIG_SYNTAX_PERL と ONIG_SYNTAX_JAVA + (?s): 終止符記号(.)は改行と照合成功 + (?m): ^ は改行の直後に照合する、$ は改行の直前に照合する -�䵭 2. �ȼ���ĥ��ǽ +補記 2. 独自拡張機能 - + 16�ʿ���������16�ʿ��� \h, \H - + ̾���դ���ͼ����� (?<name>...), (?'name'...) - + ̾������������� \k<name> - + ��ʬ���ƽФ� \g<name>, \g<group-num> + + 16進数数字、非16進数字 \h, \H + + 名前付き捕獲式集合 (?<name>...), (?'name'...) + + 名前指定後方参照 \k<name> + + 部分式呼出し \g<name>, \g<group-num> -�䵭 3. Perl 5.8.0����Ӥ���¸�ߤ��ʤ���ǽ +補記 3. Perl 5.8.0と比較して存在しない機能 + \N{name} + \l,\u,\L,\U, \X, \C @@ -370,80 +376,80 @@ + (?(condition)yes-pat|no-pat) * \Q...\E - â��ONIG_SYNTAX_PERL��ONIG_SYNTAX_JAVA�Ǥ�ͭ�� - - -�䵭 4. Ruby 1.8 �����ܸ첽 GNU regex(version 0.12)�Ȥΰ㤤 - - + ʸ��Property��ǽ�ɲ� (\p{property}, \P{Property}) - + 16�ʿ����������ɲ� (\h, \H) - + ����ɤߵ�ǽ���ɲ� - + ���ߤʷ����֤�����Ҥ��ɲ� (?+, *+, ++) - + ʸ���������α黻�Ҥ��ɲ� ([...], &&) - ('[' �ϡ�ʸ�����������̾��ʸ���Ȥ��ƻ��Ѥ���Ȥ��ˤ� - �������ʤ���Фʤ�ʤ�) - + ̾���դ���ͼ�����ȡ���ʬ���ƽФ���ǽ�ɲ� - + ¿�Х���ʸ�������ɤ����ꤵ��Ƥ���Ȥ��� - ʸ����������Ȭ�ʿ��ޤ��Ͻ�ϻ�ʿ�ɽ����Ϣ³�ϡ�¿�Х�������ɽ�����줿 - ��Ĥ�ʸ���Ȳ�ᤵ��� - (��. [\xa1\xa2], [\xa1\xa7-\xa4\xa1]) - + ʸ���������ǡ���Х���ʸ����¿�Х���ʸ�����ϰϻ���ϵ�����롣 - ex. /[a-��]/ - + ��Ω���ץ�����ͭ���ϰϤϡ����θ�Ω���ץ�����ޤ�Ǥ��뼰����� - �����ޤǤǤ��� - ��. (?:(?i)a|b) �� (?:(?i:a|b)) �Ȳ�ᤵ��롢(?:(?i:a)|b)�ǤϤʤ� - + ��Ω���ץ����Ϥ������μ����Ф���Ʃ��Ū�ǤϤʤ� - ��. /a(?i)*/ ��ʸˡ���顼�Ȥʤ� - + �Դ����ʷ����֤��ϰϻ���Ҥ��̾��ʸ����Ȥ��Ƶ��Ĥ���� - ��. /{/, /({)/, /a{2,3/ - + ����ŪPOSIX�֥饱�å� [:^xxxx:] ���ɲ� - + POSIX�֥饱�å� [:ascii:] ���ɲ� - + ���ɤߤη����֤����Ե��� - ��. /(?=a)*/, /(?!b){5}/ - + ���ͤǻ��ꤵ�줿ʸ�����Ф��Ƥ⡢��ʸ����ʸ���ȹ祪�ץ�����ͭ�� - ��. /\x61/i =~ "A" - + �����֤��������ǡ��������ξ�ά(0��)���Ǥ��� + 但しONIG_SYNTAX_PERLとONIG_SYNTAX_JAVAでは有効 + + +補記 4. Ruby 1.8 の日本語化 GNU regex(version 0.12)との違い + + + 文字Property機能追加 (\p{property}, \P{Property}) + + 16進数字タイプ追加 (\h, \H) + + 戻り読み機能を追加 + + 強欲な繰り返し指定子を追加 (?+, *+, ++) + + 文字集合の中の演算子を追加 ([...], &&) + ('[' は、文字集合の中で通常の文字として使用するときには + 退避修飾しなければならない) + + 名前付き捕獲式集合と、部分式呼出し機能追加 + + 多バイト文字コードが指定されているとき、 + 文字集合の中で八進数または十六進数表現の連続は、多バイト符号で表現された + 一個の文字と解釈される + (例. [\xa1\xa2], [\xa1\xa7-\xa4\xa1]) + + 文字集合の中で、一バイト文字と多バイト文字の範囲指定は許される。 + ex. /[a-あ]/ + + 孤立オプションの有効範囲は、その孤立オプションを含んでいる式集合の + 終わりまでである + 例. (?:(?i)a|b) は (?:(?i:a|b)) と解釈される、(?:(?i:a)|b)ではない + + 孤立オプションはその前の式に対して透過的ではない + 例. /a(?i)*/ は文法エラーとなる + + 不完全な繰り返し範囲指定子は通常の文字列として許可される + 例. /{/, /({)/, /a{2,3/ + + 否定的POSIXブラケット [:^xxxx:] を追加 + + POSIXブラケット [:ascii:] を追加 + + 先読みの繰り返しは不許可 + 例. /(?=a)*/, /(?!b){5}/ + + 数値で指定された文字に対しても、大文字小文字照合オプションは有効 + 例. /\x61/i =~ "A" + + 繰り返し回数指定で、最低回数の省略(0回)ができる /a{,n}/ == /a{0,n}/ - �������Ⱥ�������Ʊ����ά�ϵ�����ʤ���(/a{,}/) - + /a{n}?/��̵�ߤʱ黻�ҤǤϤʤ��� + 最低回数と最大回数の同時省略は許されない。(/a{,}/) + + /a{n}?/は無欲な演算子ではない。 /a{n}?/ == /(?:a{n})?/ - + ̵���ʸ������Ȥ�����å����ƥ��顼�ˤ��롣 + + 無効な後方参照をチェックしてエラーにする。 /\1/, /(a)\2/ - + ̵�·����֤�����ǡ�Ĺ�����Ǥξȹ������Ϸ����֤������Ǥ����뤬�� - ���ΤȤ������Ǥ��٤����ɤ�����Ƚ��Ȥ��ơ���ͼ��������;��֤� - �Ѳ��ޤǹ�θ���Ƥ��� + + 無限繰り返しの中で、長さ零での照合成功は繰り返しを中断させるが、 + このとき、中断すべきかどうかの判定として、捕獲式集合の捕獲状態の + 変化まで考慮している /(?:()|())*\1\2/ =~ "" /(?:\1a|())*/ =~ "a" -�䵭 5. ��������Ƥ��뤬�������ͤǤ�ͭ���ˤ��Ƥ��ʤ���ǽ +補記 5. 実装されているが、既定値では有効にしていない機能 - + ������� + + 捕獲履歴参照 - (?@...) �� (?@<name>...) + (?@...) と (?@<name>...) - ��. /(?@a)*/.match("aaa") ==> [<0-1>, <1-2>, <2-3>] + 例. /(?@a)*/.match("aaa") ==> [<0-1>, <1-2>, <2-3>] - ������ˡ�ϡ�sample/listcap.c�� + 使用方法は、sample/listcap.cを参照 - ͭ���ˤ��Ƥ��ʤ���ͳ�ϡ��ɤ��������Ω�Ĥ��Ϥä��ꤷ�ʤ����ᡣ + 有効にしていない理由は、どの程度役に立つかはっきりしないため。 -�䵭 6. ������ +補記 6. 問題点 - + �����ǥ��Х����ͤ�Ŭ���ʲ����ɤ����Υ����å��ϹԤʤäƤ��ʤ��� + + エンコーディングバイト値が適正な価かどうかのチェックは行なっていない。 - ��: UTF-8 + 例: UTF-8 - * ��Ƭ�Х��ȤȤ��������ʥХ��Ȥ��ʸ���Ȥߤʤ� + * 先頭バイトとして不正なバイトを一文字とみなす /./u =~ "\xa3" - * �Դ����ʥХ��ȥ������Υ����å��ʤ� + * 不完全なバイトシーケンスのチェックをしない /\w+/u =~ "a\xf3\x8ec" - �����Ĵ�٤뤳�Ȥϲ�ǽ�ǤϤ��뤬���٤��ʤ�ΤǹԤʤ�ʤ��� + これを調べることは可能ではあるが、遅くなるので行なわない。 - ʸ����Ȥ��ơ����Τ褦�ʥХ��������ꤷ������ư����ݾڤ��ʤ��� + 文字列として、そのようなバイト列を指定した場合の動作は保証しない。 -���� +終り |