为什么 \w 模式不能匹配?许多模式不能工作,例如:\s
我的操作系统是 Mac
我想可能会遗漏一些东西;
该代码仅匹配字符'w',不要山姆。
谢谢你的帮助
//
// main.c
// test
//
// Created by SamPeng on 12-9-22.
// Copyright (c) 2012年 SamPeng. All rights reserved.
//
#include <stdio.h>
#include <sys/types.h>
#include <regex.h>
#include <string.h>
int main(int argc, const char * argv[])
{
int status,i;
int cflags = REG_EXTENDED;
regmatch_t pmatch[1];
const size_t nmatch=1;
regex_t reg;
const char *pattern="\\w";
char *buf = "sam@sampengw.org";
regcomp(®, pattern, cflags);
status = regexec(®, buf, nmatch, pmatch, 0);
if(status == REG_NOMATCH)
printf("No Match \n");
else if(status == 0){
printf("Match:\n");
for (i=pmatch[0].rm_so; i<pmatch[0].rm_eo; ++i) {
putchar(buf[i]);
}
printf("\n");
}
regfree(®);
return 0;
}
补充:是的,我知道这项工作是 POSIX Base reg,如何更改?我不想使用强大的正则表达式