regexpal.com でテストしたところ、この正規表現は正常に動作しますが、私のプログラムで実行するとまったく動作しません。目的は、URL からビデオ ID を取得することです (有効な URL でない場合はエラーをスローします)。
#include <regex.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
regex_t expression;
char * regexpression = "^(https?://)?(www\\.)?youtube\\.com/watch\\?(.*&)?v=(.*?)(&.*)?$";
regcomp(&expression,regexpression,0);
char * url = "http://www.youtube.com/watch?v=HereBeVideoId";
if(regexec(&expression, url, 0, NULL, 0)){
printf("Url %s not a valid video.\n",url);
return;
}
return 0;
}