工作,爲什麼\ W模式所無法比擬的,很多模式不能正常工作,例如:\ S油腔滑調的正則表達式也不會在C
我的操作系統是蘋果
我想也許失去了一些東西;
該代碼只匹配char'w',不要sam。
感謝你的幫助
//
// 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 = "[email protected]";
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基地REG,如何改變呢?我不想使用強大的正則表達式
謝謝,如果我不想使用支持常見的正則表達式,有一些建議嗎? – SamPeng
這兩個答案都讓glibc的正則表達式與glib正則表達式混淆。這些是不同的圖書館。前者是「標準」正則表達式,因此不支持Perl的\ w,\ s等。glib中的正則表達式確實支持Perl語法。 –