XML-тег регулярное выражение неполно - PullRequest
0 голосов
/ 11 января 2012

Я пытаюсь создать регулярное выражение, соответствующее тегу XML, для анализа файла, но не может найти теги в нескольких строках и другие допустимые теги. Вот как это выглядит:

QString invalidChars = "!\"#$%&\'()*+,/;\\\\<=>?@\\[\\]\\^`\\{\\}\\|~, ";
QString name = "[A-Za-z][^" + invalidChars + "]*";
QString space = "[ \\n\\t\\r\\v]*";
QString attribute = name + space + "=" + space +"(\"|\')[^\'\"]*(\"|\')";
QString tag = name + space + "(" + attribute + space + ")*" + space;
QString expression = "<" + tag + ">"
            + "|</" + tag + ">"
            + "|<" + tag + "/>"
            + "|<!--[^(-->)]*-->" //"<!\\s*--(??!-->).)*-->"
            + "|<\\?" + tag + "\\?>";

Есть ли у вас какие-либо предложения о том, как мне это сделать?

Например, он не распознает это:

<xmlexample 
attribute="example">
...