# regexoption

正規表現の文法、文字エンコーディング、オプションを設定する。

    regexoption <option1> [<option2> ...]

## 解説

strmatch, strreplace, waitregex で使用する正規表現の文法、文字エンコーディング、オプションを設定する。

オプション option1 [option2 ...] には、以下の中から文法を1つ、エンコーディングを1つ、オプションを複数指定できる。
各設定のデフォルト値は、文法: SYNTAX_RUBY, エンコーディング: ENCODING_ASCII, オプション: OPTION_NONE となる。

種別 | オプション | オプション(省略形) | 意味
--- | --- | --- | ---
文法 | SYNTAX_DEFAULT | - | デフォルト(Ruby形式)
SYNTAX_ASIS | ASIS | 固定文字列検索
SYNTAX_POSIX_BASIC | POSIX_BASIC | POSIX基本正規表現
SYNTAX_POSIX_EXTENDED | POSIX_EXTENDED | POSIX拡張正規表現
SYNTAX_EMACS | EMACS | Emacs形式正規表現
SYNTAX_GREP | GREP | grep形式正規表現
SYNTAX_GNU_REGEX | GNU_REGEX | GNU Regex形式正規表現
SYNTAX_JAVA | JAVA | Java形式正規表現
SYNTAX_PERL | PERL | Perl形式
SYNTAX_PERL_NG | PERL_NG | Perl形式正規表現 + 名前付き捕獲式集合
SYNTAX_RUBY | RUBY | Ruby形式正規表現
エンコーディング | ENCODING_ASCII | ASCII | エンコーディング設定を ASCII にする。
ENCODING_ISO_8859_1 | ISO_8859_1 | エンコーディング設定を ISO 8859-1 にする。
ENCODING_ISO_8859_2 | ISO_8859_2 | エンコーディング設定を ISO 8859-2 にする。
ENCODING_ISO_8859_3 | ISO_8859_3 | エンコーディング設定を ISO 8859-3 にする。
ENCODING_ISO_8859_4 | ISO_8859_4 | エンコーディング設定を ISO 8859-4 にする。
ENCODING_ISO_8859_5 | ISO_8859_5 | エンコーディング設定を ISO 8859-5 にする。
ENCODING_ISO_8859_6 | ISO_8859_6 | エンコーディング設定を ISO 8859-6 にする。
ENCODING_ISO_8859_7 | ISO_8859_7 | エンコーディング設定を ISO 8859-7 にする。
ENCODING_ISO_8859_8 | ISO_8859_8 | エンコーディング設定を ISO 8859-8 にする。
ENCODING_ISO_8859_9 | ISO_8859_9 | エンコーディング設定を ISO 8859-9 にする。
ENCODING_ISO_8859_10 | ISO_8859_10 | エンコーディング設定を ISO 8859-10 にする。
ENCODING_ISO_8859_11 | ISO_8859_11 | エンコーディング設定を ISO 8859-11 にする。
ENCODING_ISO_8859_13 | ISO_8859_13 | エンコーディング設定を ISO 8859-13 にする。
ENCODING_ISO_8859_14 | ISO_8859_14 | エンコーディング設定を ISO 8859-14 にする。
ENCODING_ISO_8859_15 | ISO_8859_15 | エンコーディング設定を ISO 8859-15 にする。
ENCODING_ISO_8859_16 | ISO_8859_16 | エンコーディング設定を ISO 8859-16 にする。
ENCODING_UTF8 | UTF8 | エンコーディング設定を UTF-8 にする。
ENCODING_UTF16_BE | UTF16_BE | エンコーディング設定を UTF-16 (Big Endian) にする。
ENCODING_UTF16_LE | UTF16_LE | エンコーディング設定を UTF-16 (Little Endian) にする。
ENCODING_UTF32_BE | UTF32_BE | エンコーディング設定を UTF-32 (Big Endian) にする。
ENCODING_UTF32_LE | UTF32_LE | エンコーディング設定を UTF-32 (Little Endian) にする。
ENCODING_EUC_JP | EUC_JP | エンコーディング設定を EUC-JP にする。
ENCODING_EUC_TW | EUC_TW | エンコーディング設定を EUC-TW にする。
ENCODING_EUC_KR | EUC_KR | エンコーディング設定を EUC-KR にする。
ENCODING_EUC_CN | EUC_CN | エンコーディング設定を EUC-CN にする。
ENCODING_SJIS | SJIS | エンコーディング設定を Shift_JIS にする。
ENCODING_KOI8_R | KOI8_R | エンコーディング設定を KOI8-R にする。
ENCODING_CP1251 | CP1251 | エンコーディング設定を CP1251 にする。
ENCODING_BIG5 | BIG5 | エンコーディング設定を Big5 にする。
ENCODING_GB18030 | GB18030 | エンコーディング設定を GB18030 にする。
オプション | OPTION_NONE | - | 正規表現オプションが指定されていない状態にする。
OPTION_SINGLELINE | SINGLELINE | '^' → '\A', '$' → '\Z'
OPTION_MULTILINE | MULTILINE | '.'が改行にマッチする
OPTION_IGNORECASE | IGNORECASE | 大文字/小文字同一視
OPTION_EXTEND | EXTEND | パターン拡張形式
OPTION_FIND_LONGEST | FIND_LONGEST | 最長一致
OPTION_FIND_NOT_EMPTY | FIND_NOT_EMPTY | 空文字列にマッチしない
OPTION_NEGATE_SINGLELINE | NEGATE_SINGLELINE | OPTION_SINGLELINEを無効にする
OPTION_DONT_CAPTURE_GROUP | DONT_CAPTURE_GROUP | 名前付き捕獲式集合のみ捕獲
OPTION_CAPTURE_GROUP | CAPTURE_GROUP | 名前無し捕獲式集合も捕獲

## 例

    string="文字データ"
    pattern="データ"

    strmatch string pattern
    messagebox result "デフォルト"   ; result -> 0 (Not Match)

    regexoption "SJIS"
    strmatch string pattern
    messagebox result "SJIS"   ; result -> 5 (Match)

    string="Test (PaTTerN) String"
    pattern="(pattern)"

    regexoption "IGNORECASE"
    strmatch string pattern
    sprintf2 msg 'result=%d, matchstr="%s"' result matchstr
    messagebox msg "IGNORECASE"          ; result=7, matchstr="PaTTerN"

    regexoption "ASIS" "IGNORECASE"
    strmatch string pattern
    sprintf2 msg 'result=%d, matchstr="%s"' result matchstr
    messagebox msg "IGNORECASE + ASIS"   ; result=6, matchstr="(PaTTerN)"

## 参照

- strmatch
- strreplace
- waitregex