规范化 XML 语法的正则表达式

RegEx to normalize XML syntax

我有一个 XML 代码,其中一些标签生成 xml 解析错误(错误 #1090)。问题出在需要引用的属性中:

<div class=treeview>

请帮我写一个正则表达式使它们如下:

<div class="treeview">

拜托,你能试试下一个密码吗:

var regExp:RegExp = /(class\=)(\w+)/g;
var sourceText:String = "<div class=treeview>";
var replacedText:String = sourceText.replace(regExp, '""');
trace(replacedText);

简而言之,这个 RegExp 的意思是:

  1. 找到 2 个组:(class=) 和 (any-word-after-it)
  2. 在第 2 组引号前后添加。

这一个是正确的:

var pattern:RegExp = /(\w+)(=)(\w+)/g;

trace('regexTest:', pString.replace(pattern, '""'));

因为,必须有3组:attribute_name,=(等于),attribute_value

您应该尝试以下正则表达式>

regex = /(<div[^>]*class=)(\S+)([^>]*>)/g;
sourceString.replace(regex, '""');

尝试使用通用标记修复工具,例如 John Cowan 的 TagSoup。这可能比您自己尝试的任何方法都更可靠(例如,大多数建议的正则表达式甚至不检查 keyword=value 构造是否在开始标记内)。