Я хотел бы использовать регулярное выражение здесь:Почему это регулярное выражение не будет компилироваться?
https://tools.ietf.org/html/rfc3986#appendix-B
я пытаюсь скомпилировать его так:
#include <regex.h>
...
regex_t regexp;
if((regcomp(®exp, "^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?", REG_EXTENDED)) != 0){
return SOME_ERROR:
}
Но я застрял с возвратным значением regcomp:
REG_BADRPT
Согласно man это средства:
Недопустимое использование операторов повторения, таких как использование *
в качестве первого символа.
Аналогичный смысл в этом man:
?
, *
или +
не предшествуют действительного регулярного выражение
я написал парсер, используя свое собственное регулярное выражение, но я хотел бы проверить эту тоже, так как его официально в rfc. Однако я не намерен использовать его для проверки.
Вы не учли, [спасаясь] (http://en.wikipedia.org/wiki/String_literal#Escape_sequences) требуется в C++ строковых литералов ... Попробуйте напечатать вашу строку регулярных выражений и вы будете посмотрим, что я имею в виду. –