fork download
  1. #include <regex.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. int main(void) {
  7. regex_t preg;
  8.  
  9. const char *string =
  10. "[com.example.app.JavaClass.JavaMethod(JavaClass.java:1)] (Thread-1) - "
  11. "Client: FirstName MiddleName AnotherName LastName, Wallet: WL01, "
  12. "Agency: 9999, ID: 06611486123, Ticket: TKR211";
  13. const char *pattern = "Client:\\s[a-zA-Z[:space:]]+";
  14.  
  15. size_t nmatch = 1;
  16. regmatch_t pmatch[1];
  17.  
  18. regcomp(&preg, pattern, REG_ICASE | REG_EXTENDED);
  19.  
  20. int ret = regexec(&preg, string, nmatch, pmatch, 0);
  21.  
  22. char *match = calloc(pmatch[0].rm_eo - pmatch[0].rm_so, sizeof(char));
  23. memcpy(match, &string[pmatch[0].rm_so], pmatch[0].rm_eo - pmatch[0].rm_so);
  24.  
  25. printf("ret: %d\n", ret);
  26. printf("rm_eo0: %d\n", pmatch[0].rm_eo);
  27. printf("rm_so0: %d\n", pmatch[0].rm_so);
  28.  
  29. printf("Match: %s\n", match);
  30.  
  31. regfree(&preg);
  32.  
  33. return 0;
  34. }
Success #stdin #stdout 0s 5524KB
stdin
Standard input is empty
stdout
ret: 0
rm_eo0: 119
rm_so0: 70
Match: Client: FirstName MiddleName AnotherName LastName