\w パターンが一致しないのはなぜですか?多くのパターンが機能しません。例:\s
私のOSはMacです
たぶん何かが足りないと思います。
そのコードは char '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 であることは知っていますが、これをどのように変更しますか? 強力な正規表現は使いたくない