我研究了 stackoverflow 并找到了类似的结果,但这并不是我真正想要的。
给定一个 xml 字符串:"<a b=\"c\"></a>"
在 javascript 上下文中,我想创建一个正则表达式来捕获包括引号在内的属性值。
注意:如果您使用单引号,则类似。
目前我有一个为 XML 规范量身定制的正则表达式:
[_A-Za-z][\w\.\-]*(?:=\"[^\"]*\")?
[_A-Za-z][\w\.\-]* //This will match the attribute name.
(?:=\"[^\"]*\")? //This will match the attribute value.
\"[^\"]*\" //This part concerns me.
我现在的问题是,如果 xml 字符串如下所示:
<shout statement="Hi! \"Richeve\"."></shout>
我知道这是一个愚蠢的问题,但我只想捕捉这种情况可能发生的罕见情况(我知道编码器可以在这种情况下使用单引号)但有些情况我们不知道当前值属性,因为属性值在运行时动态变化。
因此,为了使这一点更清楚,使用正确的正则表达式的结果应该是:
"Hi! \"Richeve\"."
我希望我的问题很清楚。感谢所有的帮助!
PS:请注意,语言上下文是 Javascript,我知道使用lookbehinds 很诱人,但目前不支持lookbehinds。
PS:我知道解析 XML 真的很难,但我有一个优雅的解决方案:) 所以我只需要解决这个小问题。所以这个问题唯一的主要焦点是捕获在字符串标记内包含引号的带引号的字符串标记。