XML标记正则表达式不完整

时间:2012-01-11 18:31:51

标签: c++ regex qt kate

我正在尝试创建一个与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">

0 个答案:

没有答案