规范化 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 的意思是:
- 找到 2 个组:(class=) 和 (any-word-after-it)
- 在第 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 构造是否在开始标记内)。
我有一个 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 的意思是:
- 找到 2 个组:(class=) 和 (any-word-after-it)
- 在第 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 构造是否在开始标记内)。