``` #include <regex.h> #include <stdio.h> int main(void) { regex_t re; int rc = regcomp(&re, "^[a-z0-9]+$", REG_EXTENDED); /* 编译,全程用户态 */ if (rc != 0) { perror("regcomp"); return 1; } rc = regexec(&re, "abc123", 0, NULL, 0); /* 匹配,命中返回0 */ printf("匹配结果=%d\n", rc); regfree(&re); return 0; } ``` 链路:`regcomp()` 在用户态把模式解析为自动机结构存入 `regex_t`。`regexec()` 在用户态自动机上扫描输入,逐字符推进并在失败分支回溯。全程不陷入内核,匹配结果经返回值交给调用方。带嵌套量词与可选分支的模式会产生指数级回溯路径。 ``` # 隔离靶场内观察正则只在用户态运行,无系统调用产生