42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#include <oniguruma.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
int main(int argc, char * argv[])
|
|
{
|
|
static OnigEncoding encodings[] = {
|
|
ONIG_ENCODING_ASCII,
|
|
ONIG_ENCODING_UTF8,
|
|
ONIG_ENCODING_UTF16_BE,
|
|
ONIG_ENCODING_UTF16_LE,
|
|
ONIG_ENCODING_UTF32_BE,
|
|
ONIG_ENCODING_UTF32_LE,
|
|
};
|
|
int rc = onig_initialize(encodings, sizeof(encodings) / sizeof(encodings[0]));
|
|
if (rc != ONIG_NORMAL)
|
|
{
|
|
OnigUChar s[ONIG_MAX_ERROR_MESSAGE_LEN];
|
|
onig_error_code_to_str(s, rc, nullptr);
|
|
fprintf(stderr, "Error: %s\n", s);
|
|
return 1;
|
|
}
|
|
|
|
static const char pattern[] = "\\<Foo\\d";
|
|
OnigErrorInfo einfo;
|
|
regex_t * regex;
|
|
rc = onig_new(®ex, (const OnigUChar *)pattern,
|
|
(const OnigUChar *)(pattern + strlen(pattern)), ONIG_OPTION_NONE,
|
|
ONIG_ENCODING_UTF8, ONIG_SYNTAX_DEFAULT, &einfo);
|
|
if (rc != ONIG_NORMAL)
|
|
{
|
|
OnigUChar s[ONIG_MAX_ERROR_MESSAGE_LEN];
|
|
onig_error_code_to_str(s, rc, &einfo);
|
|
fprintf(stderr, "Error: %s\n", s);
|
|
return 1;
|
|
}
|
|
|
|
onig_free(regex);
|
|
|
|
return 0;
|
|
}
|