og her har jeg forsøgt med "(<|</)html>", uden dog at få meget andet end: 0 <html> 1 <
Den kode jeg bruger er
const char *error; const char *res; int erroffset; pcre *re; int rc; int oVecNeed; int* ovector; int resLength;
re = pcre_compile ( pattern.c_str(), /* the pattern */// 0, /* default options */ &error, /* for error message */ &erroffset, /* for error offset */ 0);
if (!re) { string tmp(error); errorMsg = "Internal error: pcre_compile failed with the error: " + tmp; errorMsg += " at " + intToStr(erroffset) + ":\n"; errorMsg += pattern;
return false; }
if(pcre_fullinfo(re, NULL, PCRE_INFO_CAPTURECOUNT, &oVecNeed) != 0) { errorMsg = "Regular expression did not match any substring"; return false; }
ovector = new int[3*(oVecNeed+1)];
rc = pcre_exec ( re, /* the compiled pattern */ 0, /* no extra data - pattern was not studied */ str.c_str(), /* the string to match */ (int) str.length(), /* the length of the string */ 0, /* start at offset 0 in the subject */ 0, /* default options */ ovector, /* output vector for substring information */ 3*(oVecNeed+1)); /* number of elements in the output vector */
if (rc < 0) {
int errVal = 0;
switch (rc) { case PCRE_ERROR_NOMATCH: errorMsg = "Regular expression did not match any substring"; break; default: errorMsg = "Internal error: pcre_exec failed"; break; }
delete ovector; return false; }
for (int i = 0; i < rc; i++) { printf("%2d: %.*s\n", i, ovector[2*i+1] - ovector[2*i], str.c_str() + ovector[2*i]); }
Er jeg helt ude i hamppen, eller kan nogen se hvorfor det ikke virker???
23/10-2007 18:10:38> Kun hvis den er lige efter den indlefdende '[' :
[abc] = matcher et vilkårligt tegn som er enten et 'a', et 'b' eller et 'c'. [^abc = matcher et vilkårligt tegn som hverken er et 'a', et 'b' eller et 'c'.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.