#include <regex.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
regex_t preg;
const char *string =
"[com.example.app.JavaClass.JavaMethod(JavaClass.java:1)] (Thread-1) - "
"Client: FirstName MiddleName AnotherName LastName, Wallet: WL01, "
"Agency: 9999, ID: 06611486123, Ticket: TKR211";
const char *pattern = "Client:\\s[a-zA-Z[:space:]]+";
size_t nmatch = 1;
regmatch_t pmatch[1];
regcomp(&preg, pattern, REG_ICASE | REG_EXTENDED);
int ret = regexec(&preg, string, nmatch, pmatch, 0);
char *match
= calloc(pmatch
[0].
rm_eo - pmatch
[0].
rm_so, sizeof(char)); memcpy(match
, &string
[pmatch
[0].
rm_so], pmatch
[0].
rm_eo - pmatch
[0].
rm_so);
printf("rm_eo0: %d\n", pmatch
[0].
rm_eo); printf("rm_so0: %d\n", pmatch
[0].
rm_so);
regfree(&preg);
return 0;
}
I2luY2x1ZGUgPHJlZ2V4Lmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBtYWluKHZvaWQpIHsKICByZWdleF90IHByZWc7CgogIGNvbnN0IGNoYXIgKnN0cmluZyA9CiAgICAgICJbY29tLmV4YW1wbGUuYXBwLkphdmFDbGFzcy5KYXZhTWV0aG9kKEphdmFDbGFzcy5qYXZhOjEpXSAoVGhyZWFkLTEpIC0gIgogICAgICAiQ2xpZW50OiBGaXJzdE5hbWUgTWlkZGxlTmFtZSBBbm90aGVyTmFtZSBMYXN0TmFtZSwgV2FsbGV0OiBXTDAxLCAiCiAgICAgICJBZ2VuY3k6IDk5OTksIElEOiAwNjYxMTQ4NjEyMywgVGlja2V0OiBUS1IyMTEiOwogIGNvbnN0IGNoYXIgKnBhdHRlcm4gPSAiQ2xpZW50Olxcc1thLXpBLVpbOnNwYWNlOl1dKyI7CgogIHNpemVfdCBubWF0Y2ggPSAxOwogIHJlZ21hdGNoX3QgcG1hdGNoWzFdOwoKICByZWdjb21wKCZwcmVnLCBwYXR0ZXJuLCBSRUdfSUNBU0UgfCBSRUdfRVhURU5ERUQpOwoKICBpbnQgcmV0ID0gcmVnZXhlYygmcHJlZywgc3RyaW5nLCBubWF0Y2gsIHBtYXRjaCwgMCk7CgogIGNoYXIgKm1hdGNoID0gY2FsbG9jKHBtYXRjaFswXS5ybV9lbyAtIHBtYXRjaFswXS5ybV9zbywgc2l6ZW9mKGNoYXIpKTsKICBtZW1jcHkobWF0Y2gsICZzdHJpbmdbcG1hdGNoWzBdLnJtX3NvXSwgcG1hdGNoWzBdLnJtX2VvIC0gcG1hdGNoWzBdLnJtX3NvKTsKCiAgcHJpbnRmKCJyZXQ6ICVkXG4iLCByZXQpOwogIHByaW50Zigicm1fZW8wOiAlZFxuIiwgcG1hdGNoWzBdLnJtX2VvKTsKICBwcmludGYoInJtX3NvMDogJWRcbiIsIHBtYXRjaFswXS5ybV9zbyk7CgogIHByaW50ZigiTWF0Y2g6ICVzXG4iLCBtYXRjaCk7CgogIHJlZ2ZyZWUoJnByZWcpOwoKICByZXR1cm4gMDsKfQ==