1鬼車インターフェース Version 6.9.5 2020/02/19 2 3#include <oniguruma.h> 4 5 6# int onig_initialize(OnigEncoding use_encodings[], int num_encodings) 7 8 ライブラリの初期化 9 最初に呼び出す必要がある。 10 11 * onig_init() は廃止 12 13 引数 14 1 use_encodings: 使用する文字エンコーディングの配列 15 2 num_encodings: 文字エンコーディングの数 16 17 18# int onig_error_code_to_str(UChar* err_buf, int err_code, ...) 19 20 エラーメッセージを取得する。 21 22 この関数を、onig_new()の結果に対して呼び出す場合には、onig_new()のpattern引数を 23 メモリ解放するよりも前に呼び出さなければならない。 24 25 正常終了戻り値: エラーメッセージ文字列のバイト長 26 27 引数 28 1 err_buf: エラーメッセージを格納する領域 29 (必要なサイズ: ONIG_MAX_ERROR_MESSAGE_LEN) 30 2 err_code: エラーコード 31 3 err_info (optional): onig_new()のerr_info 32 33 34# void onig_set_warn_func(OnigWarnFunc func) 35 36 警告通知関数をセットする。 37 38 警告: 39 '[', '-', ']' in character class without escape. 40 ']' in pattern without escape. 41 42 引数 43 1 func: 警告関数 void (*func)(char* warning_message) 44 45 46# void onig_set_verb_warn_func(OnigWarnFunc func) 47 48 詳細警告通知関数をセットする。 49 50 詳細警告: 51 redundant nested repeat operator. 52 53 引数 54 1 func: 詳細警告関数 void (*func)(char* warning_message) 55 56 57# int onig_new(regex_t** reg, const UChar* pattern, const UChar* pattern_end, 58 OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, 59 OnigErrorInfo* err_info) 60 61 正規表現オブジェクト(regex)を作成する。 62 63 正常終了戻り値: ONIG_NORMAL 64 65 引数 66 1 reg: 作成された正規表現オブジェクトを返すアドレス 67 2 pattern: 正規表現パターン文字列 68 3 pattern_end: 正規表現パターン文字列の終端アドレス(pattern + pattern length) 69 4 option: 正規表現コンパイル時オプション 70 71 ONIG_OPTION_NONE オプションなし 72 ONIG_OPTION_SINGLELINE '^' -> '\A', '$' -> '\Z' 73 ONIG_OPTION_MULTILINE '.'が改行にマッチする 74 ONIG_OPTION_IGNORECASE 曖昧マッチ オン 75 ONIG_OPTION_EXTEND パターン拡張形式 76 ONIG_OPTION_FIND_LONGEST 最長マッチ 77 ONIG_OPTION_FIND_NOT_EMPTY 空マッチを無視 78 ONIG_OPTION_NEGATE_SINGLELINE 79 ONIG_SYNTAX_POSIX_BASIC, ONIG_SYNTAX_POSIX_EXTENDED, 80 ONIG_SYNTAX_PERL, ONIG_SYNTAX_PERL_NG, ONIG_SYNTAX_JAVAで 81 デフォルトで有効なONIG_OPTION_SINGLELINEをクリアする。 82 83 ONIG_OPTION_DONT_CAPTURE_GROUP 名前付き捕獲式集合のみ捕獲 84 ONIG_OPTION_CAPTURE_GROUP 名前無し捕獲式集合も捕獲 85 ONIG_OPTION_WORD_IS_ASCII wordがASCIIのみ (\w, \p{Word}, [[:word:]]) 86 word boundがASCIIのみ (\b) 87 ONIG_OPTION_DIGIT_IS_ASCII digitがASCIIのみ (\d, \p{Digit}, [[:digit:]]) 88 ONIG_OPTION_SPACE_IS_ASCII spaceがASCIIのみ (\s, \p{Space}, [[:space:]]) 89 ONIG_OPTION_POSIX_IS_ASCII POSIXプロパティがASCIIのみ 90 (word, digit, spaceを全て含んでいる) 91 (alnum, alpha, blank, cntrl, digit, graph, 92 lower, print, punct, space, upper, xdigit, 93 word) 94 ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER 拡張書記素房モード 95 ONIG_OPTION_TEXT_SEGMENT_WORD 単語モード 96 97 5 enc: 文字エンコーディング 98 99 ONIG_ENCODING_ASCII ASCII 100 ONIG_ENCODING_ISO_8859_1 ISO 8859-1 101 ONIG_ENCODING_ISO_8859_2 ISO 8859-2 102 ONIG_ENCODING_ISO_8859_3 ISO 8859-3 103 ONIG_ENCODING_ISO_8859_4 ISO 8859-4 104 ONIG_ENCODING_ISO_8859_5 ISO 8859-5 105 ONIG_ENCODING_ISO_8859_6 ISO 8859-6 106 ONIG_ENCODING_ISO_8859_7 ISO 8859-7 107 ONIG_ENCODING_ISO_8859_8 ISO 8859-8 108 ONIG_ENCODING_ISO_8859_9 ISO 8859-9 109 ONIG_ENCODING_ISO_8859_10 ISO 8859-10 110 ONIG_ENCODING_ISO_8859_11 ISO 8859-11 111 ONIG_ENCODING_ISO_8859_13 ISO 8859-13 112 ONIG_ENCODING_ISO_8859_14 ISO 8859-14 113 ONIG_ENCODING_ISO_8859_15 ISO 8859-15 114 ONIG_ENCODING_ISO_8859_16 ISO 8859-16 115 ONIG_ENCODING_UTF8 UTF-8 116 ONIG_ENCODING_UTF16_BE UTF-16BE 117 ONIG_ENCODING_UTF16_LE UTF-16LE 118 ONIG_ENCODING_UTF32_BE UTF-32BE 119 ONIG_ENCODING_UTF32_LE UTF-32LE 120 ONIG_ENCODING_EUC_JP EUC-JP 121 ONIG_ENCODING_EUC_TW EUC-TW 122 ONIG_ENCODING_EUC_KR EUC-KR 123 ONIG_ENCODING_EUC_CN EUC-CN 124 ONIG_ENCODING_SJIS Shift_JIS 125 ONIG_ENCODING_KOI8_R KOI8-R 126 ONIG_ENCODING_CP1251 CP1251 127 ONIG_ENCODING_BIG5 Big5 128 ONIG_ENCODING_GB18030 GB18030 129 130 または、ユーザが定義したOnigEncodingTypeデータのアドレス 131 132 6 syntax: 正規表現パターン文法定義 133 134 ONIG_SYNTAX_ASIS plain text 135 ONIG_SYNTAX_POSIX_BASIC POSIX Basic RE 136 ONIG_SYNTAX_POSIX_EXTENDED POSIX Extended RE 137 ONIG_SYNTAX_EMACS Emacs 138 ONIG_SYNTAX_GREP grep 139 ONIG_SYNTAX_GNU_REGEX GNU regex 140 ONIG_SYNTAX_JAVA Java (Sun java.util.regex) 141 ONIG_SYNTAX_PERL Perl 142 ONIG_SYNTAX_PERL_NG Perl + 名前付き捕獲式集合 143 ONIG_SYNTAX_RUBY Ruby 144 ONIG_SYNTAX_ONIGURUMA Oniguruma 145 ONIG_SYNTAX_DEFAULT default (== ONIG_SYNTAX_ONIGURUMA) 146 onig_set_default_syntax() 147 148 または、ユーザが定義したOnigSyntaxTypeデータのアドレス 149 150 7 err_info: エラー情報を返すためのアドレス 151 onig_error_code_to_str()の三番目の引数として使用する 152 153 154 155# int onig_new_without_alloc(regex_t* reg, const UChar* pattern, 156 const UChar* pattern_end, 157 OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, 158 OnigErrorInfo* err_info) 159 160 正規表現オブジェクト(regex)を作成する。 161 regの領域を内部で割り当てない。 162 163 正常終了戻り値: ONIG_NORMAL 164 165 166 167# int onig_new_deluxe(regex_t** reg, const UChar* pattern, const UChar* pattern_end, 168 OnigCompileInfo* ci, OnigErrorInfo* einfo) 169 170 この関数は廃止予定。 171 パターンと対象文字列の文字エンコーディングが異なる場合を許さなくなった。 172 173 正規表現オブジェクト(regex)を作成する。 174 この関数は、onig_new()のデラックス版。 175 176 正常終了戻り値: ONIG_NORMAL 177 178 引数 179 1 reg: 作成された正規表現オブジェクトを返すアドレス 180 2 pattern: 正規表現パターン文字列 181 3 pattern_end: 正規表現パターン文字列の終端アドレス(pattern + pattern length) 182 4 ci: コンパイル情報 183 184 ci->num_of_elements: ciの要素数 (現在の版では: 5) 185 ci->pattern_enc: パターン文字列の文字エンコーディング 186 ci->target_enc: 対象文字列の文字エンコーディング 187 ci->syntax: 正規表現パターン文法定義 188 ci->option: 正規表現コンパイル時オプション 189 ci->case_fold_flag: ONIG_OPTION_IGNORECASEモードでの 190 文字曖昧マッチ指定ビットフラグ 191 192 ONIGENC_CASE_FOLD_MIN: 最小 193 ONIGENC_CASE_FOLD_DEFAULT: 最小 194 onig_set_default_case_fold_flag() 195 196 5 err_info: エラー情報を返すためのアドレス 197 onig_error_code_to_str()の三番目の引数として使用する 198 199 200 異なる文字エンコーディングの組み合わせは、以下の場合にのみ許される。 201 202 pattern_enc: ASCII, ISO_8859_1 203 target_enc: UTF16_BE, UTF16_LE, UTF32_BE, UTF32_LE 204 205 pattern_enc: UTF16_BE/LE 206 target_enc: UTF16_LE/BE 207 208 pattern_enc: UTF32_BE/LE 209 target_enc: UTF32_LE/BE 210 211 212# void onig_free(regex_t* reg) 213 214 正規表現オブジェクトのメモリを解放する。 215 216 引数 217 1 reg: 正規表現オブジェクト 218 219 220# void onig_free_body(regex_t* reg) 221 222 正規表現オブジェクトのメモリを解放する。(reg自身の領域を除いて) 223 224 引数 225 1 reg: 正規表現オブジェクト 226 227 228# OnigMatchParam* onig_new_match_param() 229 230 OnigMatchParamオブジェクトを生成し、onig_initialize_match_param()を使用して 231 中身を初期化する。 232 233 234# void onig_free_match_param(OnigMatchParam* mp) 235 236 OnigMatchParamオブジェクトで使用しているメモリを開放する。 237 238 引数 239 1 mp: OnigMatchParamオブジェクト 240 241 242# void onig_initialize_match_param(OnigMatchParam* mp) 243 244 マッチパラメタ構造体にデフォルト値をセットする。 245 マッチパラメタは、onig_match_with_param(), onig_search_with_param()で 246 使用される。 247 248 引数 249 1 mp: マッチパラメタオブジェクトアドレス 250 251 252# int onig_set_match_stack_limit_size_of_match_param(OnigMatchParam* mp, unsigned int limit) 253 254 マッチスタックの最大深さをセットする。 255 0は、無制限を表す。 256 257 引数 258 1 mp: マッチパラメタオブジェクトアドレス 259 2 limit: 制限数 260 261 正常終了戻り値: ONIG_NORMAL 262 263 264# int onig_set_retry_limit_in_match_of_match_param(OnigMatchParam* mp, unsigned long limit) 265 266 一回のマッチでのリトライ数の制限値をセットする。 267 268 引数 269 1 mp: マッチパラメタオブジェクトアドレス 270 2 limit: 制限回数 271 272 正常終了戻り値: ONIG_NORMAL 273 274 275# int onig_set_retry_limit_in_search_of_match_param(OnigMatchParam* mp, unsigned long limit) 276 277 一回の検索でのリトライ数の制限値をセットする。 278 0は無制限を意味する。 279 280 引数 281 1 mp: マッチパラメタオブジェクトアドレス 282 2 limit: 制限回数 283 284 正常終了戻り値: ONIG_NORMAL 285 286 287# int onig_set_progress_callout_of_match_param(OnigMatchParam* mp, OnigCalloutFunc f) 288 289 前進時の内容の呼び出し(callouts)で呼び出される関数をセットする。 290 もし0(NULL)がセットされると、前進時に呼び出しは起こらない。 291 292 引数 293 1 mp: マッチパラメタオブジェクトアドレス 294 2 f: 呼び出される関数 295 296 正常終了戻り値: ONIG_NORMAL 297 298 299# int onig_set_retraction_callout_of_match_param(OnigMatchParam* mp, OnigCalloutFunc f) 300 301 後退時の内容の呼び出し(callouts)で呼び出される関数をセットする。 302 もし0(NULL)がセットされると、後退時に呼び出しは起こらない。 303 304 引数 305 1 mp: マッチパラメタオブジェクトアドレス 306 2 f: 呼び出される関数 307 308 正常終了戻り値: ONIG_NORMAL 309 310 311 312# int onig_search(regex_t* reg, const UChar* str, const UChar* end, const UChar* start, 313 const UChar* range, OnigRegion* region, OnigOptionType option) 314 315 正規表現で文字列を検索し、検索結果とマッチ領域を返す。 316 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。 317 318 正常終了戻り値: マッチ位置 (p - str >= 0) 319 検索失敗: ONIG_MISMATCH (< 0) 320 321 引数 322 1 reg: 正規表現オブジェクト 323 2 str: 検索対象文字列 324 3 end: 検索対象文字列の終端アドレス 325 4 start: 検索対象文字列の検索先頭位置アドレス 326 5 range: 検索対象文字列の検索終了位置アドレス 327 前方探索 (start <= 探索される文字列 < range) 328 後方探索 (range <= 探索される文字列 <= start) 329 6 region: マッチ領域情報(region) (NULLも許される) 330 7 option: 検索時オプション 331 332 ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない 333 ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない 334 ONIG_OPTION_POSIX_REGION region引数をPOSIX APIのregmatch_t[]にする 335 336 337# int onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end, 338 const UChar* start, const UChar* range, OnigRegion* region, 339 OnigOptionType option, OnigMatchParam* mp) 340 341 正規表現で文字列を検索し、検索結果とマッチ領域を返す。 342 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。 343 344 引数 345 1-7: onig_search()と同じ 346 8 mp: マッチパラメタ値 (match_stack_limit, retry_limit_in_match, retry_limit_in_search) 347 348 349# int onig_match(regex_t* reg, const UChar* str, const UChar* end, 350 const UChar* at, OnigRegion* region, OnigOptionType option) 351 352 文字列の指定位置でマッチングを行い、結果とマッチ領域を返す。 353 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。 354 355 正常終了戻り値: マッチしたバイト長 (>= 0) 356 not match: ONIG_MISMATCH ( < 0) 357 358 引数 359 1 reg: 正規表現オブジェクト 360 2 str: 検索対象文字列 361 3 end: 検索対象文字列の終端アドレス 362 4 at: 検索対象文字列の検索アドレス 363 5 region: マッチ領域情報(region) (NULLも許される) 364 6 option: 検索時オプション 365 366 ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない 367 ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない 368 ONIG_OPTION_POSIX_REGION region引数をPOSIX APIのregmatch_t[]にする 369 370 371# int onig_match_with_param(regex_t* reg, const UChar* str, const UChar* end, 372 const UChar* at, OnigRegion* region, 373 OnigOptionType option, OnigMatchParam* mp) 374 375 文字列の指定位置でマッチングを行い、結果とマッチ領域を返す。 376 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。 377 378 引数 379 1-6: onig_match()と同じ 380 7 mp: マッチパラメタ値 (match_stack_limit, retry_limit_in_match, retry_limit_in_search) 381 382 383# int onig_scan(regex_t* reg, const UChar* str, const UChar* end, 384 OnigRegion* region, OnigOptionType option, 385 int (*scan_callback)(int, int, OnigRegion*, void*), 386 void* callback_arg) 387 388 正規表現で文字列をスキャンして、マッチングする毎にコールバック関数を呼び出す。 389 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。 390 391 正常終了: マッチ回数 (0回も含める) 392 エラー: エラーコード (< 0) 393 中断: コールバック関数が0以外の戻り値を返したとき、その値を戻り値として中断 394 395 引数 396 1 reg: 正規表現オブジェクト 397 2 str: 検索対象文字列 398 3 end: 検索対象文字列の終端アドレス 399 4 region: マッチ領域情報(region) (NULLも許される) 400 5 option: 検索時オプション 401 6 scan_callback: コールバック関数 402 7 callback_arg: コールバック関数に渡される付加引数値 403 404 405# int onig_regset_new(OnigRegSet** rset, int n, regex_t* regs[]) 406 407 regsetオブジェクトを生成する。 408 全ての正規表現オブジェクトは、同じ文字エンコーディングでなければならない。 409 全ての正規表現オブジェクトは、ONIG_OPTION_FIND_LONGESTオプションでコンパイルされていてはならない。 410 411 引数 412 1 rset: regsetオブジェクトを返すためのアドレス 413 2 n: 正規表現の個数 414 3 regs: 正規表現オブジェクトの配列 415 416 正常終了戻り値: ONIG_NORMAL 417 418 419# int onig_regset_add(OnigRegSet* set, regex_t* reg) 420 421 regsetオブジェクトに正規表現を追加する。 422 正規表現オブジェクトは、regsetと同じ文字エンコーディングでなければならない。 423 正規表現オブジェクトは、ONIG_OPTION_FIND_LONGESTオプションでコンパイルされていてはならない。 424 425 引数 426 1 set: regsetオブジェクト 427 2 reg: 正規表現オブジェクト 428 429 正常終了戻り値: ONIG_NORMAL 430 431 432# int onig_regset_replace(OnigRegSet* set, int at, regex_t* reg) 433 434 regsetの中の一個の正規表現オブジェクトを別のものに変更する。 435 若しreg引数の値がNULLであれば、at番目の正規表現オブジェクトを外す。(そして、以降の正規表現オブジェクトのインデックスは変化する) 436 437 引数 438 1 set: regsetオブジェクト 439 2 at: 変更する場所のインデックス 440 2 reg: 正規表現オブジェクト 441 442 正常終了戻り値: ONIG_NORMAL 443 444 445# void onig_regset_free(OnigRegSet* set) 446 447 regsetオブジェクトとその中の正規表現オブジェクトの使用メモリを開放する。 448 若し、同一の正規表現オブジェクトを重複して登録していれば、破壊的な状況になる。 449 450 引数 451 1 set: regsetオブジェクト 452 453 454# int onig_regset_number_of_regex(OnigRegSet* set) 455 456 regsetの中の正規表現オブジェクトの個数を返す。 457 458 引数 459 1 set: regsetオブジェクト 460 461 462# regex_t* onig_regset_get_regex(OnigRegSet* set, int at) 463 464 regsetのat番目の正規表現を返す。 465 466 引数 467 1 set: regsetオブジェクト 468 2 at: 正規表現オブジェクトのインデックス (ゼロ開始) 469 470 471# OnigRegion* onig_regset_get_region(OnigRegSet* set, int at) 472 473 regsetのat番目の正規表現に対応する領域を返す。 474 475 引数 476 1 set: regsetオブジェクト 477 2 at: 正規表現オブジェクトのインデックス (ゼロ開始) 478 479 480# int onig_regset_search(OnigRegSet* set, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegSetLead lead, OnigOptionType option, int* rmatch_pos) 481 482 regsetによる検索を実行する。 483 484 戻り値: 485 検索成功: マッチした正規表現オブジェクトのインデックス (ゼロ開始) 486 検索失敗: ONIG_MISMATCH (< 0) 487 エラー: エラーコード (< 0) 488 489 引数 490 1 set: regsetオブジェクト 491 2 str: 検索対象文字列 492 3 end: 検索対象文字列の終端アドレス 493 4 start: 検索対象文字列の検索先頭位置アドレス 494 5 range: 検索対象文字列の検索終了位置アドレス 495 (start <= 探索される文字列 < range) 496 6 lead: 外側のループ要素 497 ONIG_REGSET_POSITION_LEAD (最左位置でマッチした結果を返す) 498 ONIG_REGSET_REGEX_LEAD (最左位置でマッチした結果を返す) 499 ONIG_REGSET_PRIORITY_TO_REGEX_ORDER (最初にマッチした正規表現の結果を返す) 500 7 option: 検索時オプション 501 ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない 502 ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない 503 8 rmatch_pos: マッチした位置を返すためのアドレス (match_address - str) 504 505 * ONIG_REGSET_POSITION_LEADとONIG_REGSET_REGEX_LEADは同じ結果を返す。 506 これらの違いは検索時間にしか現れない。 507 ほとんどの場合、ONIG_REGSET_POSITION_LEADのほうが速いと思われる。 508 509 510# int onig_regset_search_with_param(OnigRegSet* set, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegSetLead lead, OnigOptionType option, OnigMatchParam* mps[], int* rmatch_pos) 511 512 regsetとOnigMatchParamオブジェクトによる検索を実行する。 513 514 戻り値: 515 検索成功: マッチした正規表現オブジェクトのインデックス (ゼロ開始) 516 検索失敗: ONIG_MISMATCH (< 0) 517 エラー: エラーコード (< 0) 518 519 引数 520 1 set: regsetオブジェクト 521 2 str: 検索対象文字列 522 3 end: 検索対象文字列の終端アドレス 523 4 start: 検索対象文字列の検索先頭位置アドレス 524 5 range: 検索対象文字列の検索終了位置アドレス 525 (start <= 探索される文字列 < range) 526 6 lead: 外側のループ要素 527 ONIG_REGSET_POSITION_LEAD (最左位置でマッチした結果を返す) 528 ONIG_REGSET_REGEX_LEAD (最左位置でマッチした結果を返す) 529 ONIG_REGSET_PRIORITY_TO_REGEX_ORDER (最初にマッチした正規表現の結果を返す) 530 7 option: 検索時オプション 531 ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない 532 ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない 533 8 mps: OnigMatchParamオブジェクトの配列 534 9 rmatch_pos: マッチした位置を返すためのアドレス (match_address - str) 535 536 537# OnigRegion* onig_region_new(void) 538 539 マッチ領域情報(region)を作成する。 540 541 542# void onig_region_free(OnigRegion* region, int free_self) 543 544 マッチ領域情報(region)で使用されているメモリを解放する。 545 546 引数 547 1 region: マッチ領域情報オブジェクト 548 2 free_self: [1: region自身を含めて全て解放, 0: region自身は解放しない] 549 550 551# void onig_region_copy(OnigRegion* to, OnigRegion* from) 552 553 マッチ領域情報(region)を複製する。 554 555 引数 556 1 to: 対象領域 557 2 from: 元領域 558 559 560# void onig_region_clear(OnigRegion* region) 561 562 マッチ領域情報(region)の中味をクリアする。 563 564 引数 565 1 region: 対象領域 566 567 568# int onig_region_resize(OnigRegion* region, int n) 569 570 マッチ領域情報(region)の捕獲式集合(グループ)数を変更する。 571 572 正常終了戻り値: ONIG_NORMAL 573 574 引数 575 1 region: 対象領域 576 2 n: 新しいサイズ 577 578 579# int onig_name_to_group_numbers(regex_t* reg, const UChar* name, const UChar* name_end, 580 int** num_list) 581 582 指定した名前に対する名前付き捕獲式集合(グループ)の 583 グループ番号リストを返す。 584 名前付き捕獲式集合は、(?<name>....)によって定義できる。 585 586 正常終了戻り値: 指定された名前に対するグループ数 587 (例 /(?<x>..)(?<x>..)/ ==> 2) 588 名前に対するグループが存在しない: -1 589 590 引数 591 1 reg: 正規表現オブジェクト 592 2 name: 捕獲式集合(グループ)名 593 3 name_end: 捕獲式集合(グループ)名の終端アドレス 594 4 num_list: 番号リストを返すアドレス 595 596 597# int onig_name_to_backref_number(regex_t* reg, const UChar* name, const UChar* name_end, 598 OnigRegion *region) 599 600 指定された名前の後方参照(\k<name>)に対する捕獲式集合(グループ)の番号を返す。 601 名前に対して、複数のマッチ領域が有効であれば、その中の最大の番号を返す。 602 名前に対する捕獲式集合が一個しかないときには、対応するマッチ領域が有効か 603 どうかに関係なく、その番号を返す。(従って、regionにはNULLを渡してもよい。) 604 605 正常終了戻り値: 番号 606 607 引数 608 1 reg: 正規表現オブジェクト 609 2 name: 捕獲式集合(グループ)名 610 3 name_end: 捕獲式集合(グループ)名の終端アドレス 611 4 region: search/match結果のマッチ領域 612 613 614# int onig_foreach_name(regex_t* reg, 615 int (*func)(const UChar*, const UChar*, int,int*,regex_t*,void*), 616 void* arg) 617 618 全ての名前に対してコールバック関数呼び出しを実行する。 619 620 正常終了戻り値: 0 621 エラー: コールバック関数の戻り値 622 623 引数 624 1 reg: 正規表現オブジェクト 625 2 func: コールバック関数 626 func(name, name_end, <number of groups>, <group number's list>, 627 reg, arg); 628 629 funcが0以外の値を返すと、それ以降のコールバックは行なわずに 630 終了する。 631 632 3 arg: funcに対する追加引数 633 634 635# int onig_number_of_names(regex_t* reg) 636 637 パターン中で定義された名前の数を返す。 638 一個の名前の多重定義は一個と看做す。 639 640 引数 641 1 reg: 正規表現オブジェクト 642 643 644# OnigEncoding onig_get_encoding(regex_t* reg) 645# OnigOptionType onig_get_options(regex_t* reg) 646# OnigCaseFoldType onig_get_case_fold_flag(regex_t* reg) 647# OnigSyntaxType* onig_get_syntax(regex_t* reg) 648 649 正規表現オブジェクトに対して、対応する値を返す。 650 651 引数 652 1 reg: 正規表現オブジェクト 653 654 655# int onig_number_of_captures(regex_t* reg) 656 657 パターン中で定義された捕獲グループの数を返す。 658 659 引数 660 1 reg: 正規表現オブジェクト 661 662 663# int onig_number_of_capture_histories(regex_t* reg) 664 665 パターン中で定義された捕獲履歴(?@...)の数を返す。 666 667 使用する文法で捕獲履歴機能が有効(ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY) 668 でなければ、捕獲履歴機能は使用できない。 669 670 引数 671 1 reg: 正規表現オブジェクト 672 673 674# OnigCaptureTreeNode* onig_get_capture_tree(OnigRegion* region) 675 676 捕獲履歴データのルートノードを返す。 677 678 マッチが失敗している場合には、この値は不定である。 679 680 引数 681 1 region: マッチ領域 682 683 684# int onig_capture_tree_traverse(OnigRegion* region, int at, 685 int(*func)(int,int,int,int,int,void*), void* arg) 686 687 捕獲履歴データ木を巡回してコールバックする。 688 689 正常終了戻り値: 0 690 エラー: コールバック関数の戻り値 691 692 引数 693 1 region: マッチ領域 694 2 at: コールバックを行なうタイミング 695 696 ONIG_TRAVERSE_CALLBACK_AT_FIRST: 697 最初にコールバックして、子ノードを巡回 698 ONIG_TRAVERSE_CALLBACK_AT_LAST: 699 子ノードを巡回して、コールバック 700 ONIG_TRAVERSE_CALLBACK_AT_BOTH: 701 最初にコールバックして、子ノードを巡回、最後にもう一度コールバック 702 703 3 func: コールバック関数 704 funcが0以外の値を返すと、それ以降の巡回は行なわずに 705 終了する。 706 707 int func(int group, int beg, int end, int level, int at, 708 void* arg) 709 group: グループ番号 710 beg: マッチ開始位置 711 end マッチ終了位置 712 level: ネストレベル (0から) 713 at: コールバックが呼び出されたタイミング 714 ONIG_TRAVERSE_CALLBACK_AT_FIRST 715 ONIG_TRAVERSE_CALLBACK_AT_LAST 716 arg: 追加引数 717 718 4 arg; funcに対する追加引数 719 720 721# int onig_noname_group_capture_is_active(regex_t* reg) 722 723 名前なし式集合の捕獲機能が有効かどうかを返す。 724 725 有効: 1 726 無効: 0 727 728 引数 729 1 reg: 正規表現オブジェクト 730 731 732 オプションのONIG_OPTION_DONT_CAPTURE_GROUPがON --> 無効 733 734 パターンが名前つき式集合を使用している 735 AND 使用文法で、ONIG_SYN_CAPTURE_ONLY_NAMED_GROUPがON 736 AND オプションのONIG_OPTION_CAPTURE_GROUPがOFF 737 --> 無効 738 739 上記以外の場合 --> 有効 740 741 742# UChar* onigenc_get_prev_char_head(OnigEncoding enc, const UChar* start, const UChar* s) 743 744 文字一個分前の文字列位置を返す。 745 746 引数 747 1 enc: 文字エンコーディング 748 2 start: 文字列の先頭アドレス 749 3 s: 文字列中の位置 750 751 752# UChar* onigenc_get_left_adjust_char_head(OnigEncoding enc, 753 const UChar* start, const UChar* s) 754 755 文字の先頭バイト位置になるように左側に調整したアドレスを返す。 756 757 引数 758 1 enc: 文字エンコーディング 759 2 start: 文字列の先頭アドレス 760 3 s: 文字列中の位置 761 762 763# UChar* onigenc_get_right_adjust_char_head(OnigEncoding enc, 764 const UChar* start, const UChar* s) 765 766 文字の先頭バイト位置になるように右側に調整したアドレスを返す。 767 768 引数 769 1 enc: 文字エンコーディング 770 2 start: 文字列の先頭アドレス 771 3 s: 文字列中の位置 772 773 774# int onigenc_strlen(OnigEncoding enc, const UChar* s, const UChar* end) 775 776 文字列の文字数を返す。 777 778 779# int onigenc_strlen_null(OnigEncoding enc, const UChar* s) 780 781 文字列の文字数を返す。 782 文字エンコーディングに対して、不正な文字列を渡してはいけない。 783 784 785# int onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s) 786 787 文字列のバイト数を返す。 788 文字エンコーディングに対して、不正な文字列を渡してはいけない。 789 790 791# int onig_set_default_syntax(OnigSyntaxType* syntax) 792 793 デフォルトの正規表現パターン文法をセットする。 794 795 引数 796 1 syntax: 正規表現パターン文法 797 798 799# void onig_copy_syntax(OnigSyntaxType* to, OnigSyntaxType* from) 800 801 正規表現パターン文法をコピーする。 802 803 引数 804 1 to: 対象 805 2 from: 元 806 807 808# unsigned int onig_get_syntax_op(OnigSyntaxType* syntax) 809# unsigned int onig_get_syntax_op2(OnigSyntaxType* syntax) 810# unsigned int onig_get_syntax_behavior(OnigSyntaxType* syntax) 811# OnigOptionType onig_get_syntax_options(OnigSyntaxType* syntax) 812 813# void onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op) 814# void onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2) 815# void onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior) 816# void onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options) 817 818 正規表現パターン文法の要素を参照/取得する。 819 820 引数 821 1 syntax: 正規表現パターン文法 822 2 op, op2, behavior, options: 要素の値 823 824 825# void onig_copy_encoding(OnigEncoding to, OnigEncoding from) 826 827 文字エンコーディングをコピーする。 828 829 引数 830 1 to: 対象 831 2 from: 元 832 833 834# int onig_set_meta_char(OnigSyntaxType* syntax, unsigned int what, 835 OnigCodePoint code) 836 837 メタ文字を指定したコードポイント値にセットする。 838 ONIG_SYN_OP_VARIABLE_META_CHARACTERSが正規表現パターン文法で有効に 839 なっていない場合には、エスケープ文字を除いて、ここで指定したメタ文字は 840 機能しない。(組込みの文法では有効にしていない。) 841 842 正常終了戻り値: ONIG_NORMAL 843 844 引数 845 1 syntax: 対象文法 846 2 what: メタ文字機能の指定 847 848 ONIG_META_CHAR_ESCAPE 849 ONIG_META_CHAR_ANYCHAR 850 ONIG_META_CHAR_ANYTIME 851 ONIG_META_CHAR_ZERO_OR_ONE_TIME 852 ONIG_META_CHAR_ONE_OR_MORE_TIME 853 ONIG_META_CHAR_ANYCHAR_ANYTIME 854 855 3 code: メタ文字のコードポイント または ONIG_INEFFECTIVE_META_CHAR. 856 857 858# OnigCaseFoldType onig_get_default_case_fold_flag() 859 860 デフォルトのcase foldフラグを取得する。 861 862 863# int onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag) 864 865 デフォルトのcase foldフラグをセットする。 866 867 引数 868 1 case_fold_flag: case foldフラグ 869 870 871# unsigned int onig_get_match_stack_limit_size(void) 872 873 マッチスタックサイズの最大値を返す。 874 (デフォルト: 0 == 無制限) 875 876 877# int onig_set_match_stack_limit_size(unsigned int size) 878 879 マッチスタックサイズの最大値を指定する。 880 (size = 0: 無制限) 881 882 正常終了戻り値: ONIG_NORMAL 883 884 885# unsigned long onig_get_retry_limit_in_match(void) 886 887 一回のマッチングでのリトライ数の制限値を返す。 888 (デフォルト: 10000000) 889 890 正常終了戻り値: 制限値 891 892 893# unsigned long onig_get_retry_limit_in_search(void) 894 895 一回の検索でのリトライ数の制限値を返す。 896 0は無制限を意味する。 897 (デフォルト: 0) 898 899 正常終了戻り値: 制限値 900 901 902# int onig_set_retry_limit_in_match(unsigned long limit) 903 904 一回のマッチング内でのリトライ数の制限値を指定する。 905 906 正常終了戻り値: ONIG_NORMAL 907 908 909# int onig_set_retry_limit_in_search(unsigned long limit) 910 911 一回の検索でのリトライ数の制限値をセットする。 912 0は無制限を意味する。 913 (デフォルト: 0) 914 915 正常終了戻り値: ONIG_NORMAL 916 917 918# OnigCalloutFunc onig_get_progress_callout(void) 919 920 前進時の内容の呼び出しで呼び出される関数を返す。 921 922 923# int onig_set_progress_callout(OnigCalloutFunc f) 924 925 前進時の内容の呼び出しで呼び出される関数を指定する。 926 もし0(NULL)を指定すると、前進時の内容の呼び出しで呼び出しは起こらない。 927 928 正常終了戻り値: ONIG_NORMAL 929 930 931# OnigCalloutFunc onig_get_retraction_callout(void) 932 933 後退時の内容の呼び出しで呼び出される関数を返す。 934 935 936# int onig_set_retraction_callout(OnigCalloutFunc f) 937 938 後退時の内容の呼び出しで呼び出される関数を指定する。 939 もし0(NULL)を指定すると、後退時の内容の呼び出しで呼び出しは起こらない。 940 941 正常終了戻り値: ONIG_NORMAL 942 943 944# int onig_unicode_define_user_property(const char* name, OnigCodePoint* ranges)) 945 946 新しいUnicodeプロパティを定義する。 947 (この関数はスレッドセーフではない) 948 949 引数 950 1 name: プロパティ名 (ASCIIコードのみ。 文字 ' ', '-', '_' は無視される。) 951 2 ranges: プロパティコードポイント範囲 952 (最初の要素は範囲の数) 953 954 [num-of-ranges, 1st-range-start, 1st-range-end, 2nd-range-start... ] 955 956 * この関数を呼んだ後で、rangesを変更/破壊しないこと 957 958 正常終了戻り値: ONIG_NORMAL 959 960 961# unsigned int onig_get_parse_depth_limit(void) 962 963 再帰パース処理の最大深さを返す。 964 (デフォルト: regint.h で定義されている DEFAULT_PARSE_DEPTH_LIMIT。現在は 4096) 965 966 967# int onig_set_parse_depth_limit(unsigned int depth) 968 969 再帰パース処理の最大深さを指定する。 970 (depth = 0: regint.h で定義されたデフォルト値に設定する。) 971 972 正常終了戻り値: ONIG_NORMAL 973 974 975# int onig_end(void) 976 977 ライブラリの使用を終了する。 978 979 正常終了戻り値: ONIG_NORMAL 980 981 onig_init()を再度呼び出しても、以前に作成した正規表現オブジェクト 982 を使用することはできない。 983 984 985# const char* onig_version(void) 986 987 バージョン文字列を返す。(例 "5.0.3") 988 989// END 990