mirror of
https://github.com/fluencelabs/wasmer
synced 2024-12-13 14:25:32 +00:00
44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
|
/*
|
||
|
* Copyright 2016 The Emscripten Authors. All rights reserved.
|
||
|
* Emscripten is available under two separate licenses, the MIT license and the
|
||
|
* University of Illinois/NCSA Open Source License. Both these licenses can be
|
||
|
* found in the LICENSE file.
|
||
|
*/
|
||
|
|
||
|
// This is from// http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Frtref%2Fregexec.htm
|
||
|
#include <regex.h>
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
int main(void) {
|
||
|
regex_t preg;
|
||
|
const char *string = "a very simple simple simple string";
|
||
|
const char *pattern = "\\(sim[a-z]le\\) \\1";
|
||
|
int rc;
|
||
|
size_t nmatch = 2;
|
||
|
regmatch_t pmatch[2];
|
||
|
|
||
|
if (0 != (rc = regcomp(&preg, pattern, 0))) {
|
||
|
printf("regcomp() failed, returning nonzero (%d)\n", rc);
|
||
|
exit(EXIT_FAILURE);
|
||
|
}
|
||
|
|
||
|
if (0 != (rc = regexec(&preg, string, nmatch, pmatch, 0))) {
|
||
|
printf("Failed to match '%s' with '%s',returning %d.\n", string, pattern,
|
||
|
rc);
|
||
|
} else {
|
||
|
printf(
|
||
|
"With the whole expression, "
|
||
|
"a matched substring \"%.*s\" is found at position %d to %d.\n",
|
||
|
pmatch[0].rm_eo - pmatch[0].rm_so, &string[pmatch[0].rm_so],
|
||
|
pmatch[0].rm_so, pmatch[0].rm_eo - 1);
|
||
|
printf(
|
||
|
"With the sub-expression, "
|
||
|
"a matched substring \"%.*s\" is found at position %d to %d.\n",
|
||
|
pmatch[1].rm_eo - pmatch[1].rm_so, &string[pmatch[1].rm_so],
|
||
|
pmatch[1].rm_so, pmatch[1].rm_eo - 1);
|
||
|
}
|
||
|
regfree(&preg);
|
||
|
return 0;
|
||
|
}
|