我正在尝试使用下面的 ParseKit 添加符号标记:
[t.symbolState add:@"<p style=\"margin-left: 20px;\">"];
我想知道 ParseKit 在添加符号时是否允许使用通配符,例如:
[t.symbolState add:@"<p style=\"margin-left: ##px;\">"];
我希望能够在解析过程中从令牌中提取通配符。
ParseKit 有可能做到这一点吗?
ParseKit的开发者在这里。
我认为以这种方式使用 ParseKit 不是一个好主意。
ParseKit(及其继任者PEGKit)擅长对输入进行标记,然后在标记级别进行解析。
您提供的示例输入中有几个自然标记,但您在这里尝试做的是忽略这些自然标记,将它们组合成一个输入块,然后使用模式进行花哨的子标记匹配。
有一个流行的、强大的工具可以使用模式进行花哨的子标记匹配:正则表达式。对于这类事情,它们将是比 PEGKit 更好的解决方案。
但是,我仍然不认为正则表达式是您要在此处使用的工具(或者,至少不是唯一的工具)。
看起来您想要解析 XML 输入。不要为此使用 Regex 或 PEGKit。使用 XML 解析器。始终使用 XML 解析器来解析 XML 输入。
您可以选择使用位于 XML 解析器(SAX、StAX、DOM、XSLT、XQuery 等)之上的另一个 XML API,但在这一切之下,您应该使用 XML 解析器进行解析(当然,所有在我列出的那些工具中,做)。
然后,一旦您有了style
要查找的属性字符串值,就可以使用 Regex 进行花哨的模式匹配。