int main(int ac, char **av) { Resub rs[10]; char dst[128]; struct x *tp; if (ac == 1) { fprintf(stderr, "Usage: %s <string>\n", av[0]); return 1; } for(tp = t; tp->re; tp++) tp->p = regcomp9(tp->re); for(tp = t; tp->re; tp++){ printf("%s VIA %s", av[1], tp->re); memset(rs, 0, sizeof rs); if(regexec9(tp->p, av[1], rs, 10)){ regsub9(tp->s, dst, sizeof dst, rs, 10); printf(" sub %s -> %s", tp->s, dst); } printf("\n"); } return 0; }
int main(int argc, char *argv[]) { Resub rs[1]; Reprog *p; char *buf, *q; int l = 0; if (argc == 1) { fprintf(stderr, "Usage: cat in.file | %s <regexp>\n", argv[0]); return 0; } p = regcomp9(argv[1]); buf = calloc(BUF_SIZE, 1); while (fgets(buf, BUF_SIZE - 1, stdin)) { ++l; for (q = buf; *q; ++q); if (q > buf) *(q-1) = 0; memset(rs, 0, sizeof(Resub)); if (regexec9(p, buf, rs, 1)) printf("%d:%s\n", l, buf); } free(buf); return 0; }