为了账号安全,请及时绑定邮箱和手机立即绑定

C中的正则表达式:示例?

C中的正则表达式:示例?

C中的正则表达式:示例?下面是一些关于如何在ANSI C中使用正则表达式的简单示例和最佳实践。man regex.h并没有提供那么多帮助。
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

正则表达式实际上不是ANSI C的一部分,听起来您可能在谈论POSIX正则表达式库,它附带了大多数(所有?)*nix。下面是一个在C中使用POSIX正则表达式的示例(基于这,这个):

#include <regex.h>        regex_t regex;int reti;char msgbuf[100];/* Compile regular expression */reti = regcomp(&regex, "^a[[:alnum:]]", 0);if (reti) {
    fprintf(stderr, "Could not compile regex\n");
    exit(1);}/* Execute regular expression */reti = regexec(&regex, "abc", 0, NULL, 0);if (!reti) {
    puts("Match");}else if (reti == REG_NOMATCH) {
    puts("No match");}else {
    regerror(reti, &regex, msgbuf, sizeof(msgbuf));
    fprintf(stderr, "Regex match failed: %s\n", msgbuf);
    exit(1);}/* Free memory allocated to the pattern buffer by regcomp() */regfree(&regex);

或者,您可能想要退房。PCRE中与Perl兼容的正则表达式库。Perl语法与Java、Python和许多其他语言中使用的语法基本相同。POSIX语法是grepsedvi


查看完整回答
反对 回复 2019-06-27
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

可能不是你想要的,而是像第2c条可以将POSIX(-ISH)正则表达式编译为ANSI C。lex,但这种方法允许您牺牲灵活性和可读性来换取最后一点的速度,如果您真的需要的话。


查看完整回答
反对 回复 2019-06-27
  • 3 回答
  • 0 关注
  • 736 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信