你可以在ParseKit的令牌中使用通配符吗?

时间:2014-10-01 15:14:30

标签: wildcard parsekit

我正在尝试使用下面的ParseKit添加符号标记:

    [t.symbolState add:@"<p style=\"margin-left: 20px;\">"];

我想知道ParseKit在添加符号时是否允许使用通配符,例如:

    [t.symbolState add:@"<p style=\"margin-left: ##px;\">"];

我希望能够在解析过程中从令牌中提取通配符。

ParseKit可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

ParseKit的开发人员。

我认为以这种方式使用ParseKit并不是一个好主意。

ParseKit(及其后继者PEGKit)擅长于令牌化输入,然后解析令牌级别

您提供的示例输入中有几个自然标记,但您在此处尝试执行的操作是忽略这些自然标记,将它们组合成一个输入blob,然后使用模式进行奇特的子标记匹配。

有一种流行的,功能强大的工具,用于使用模式进行花式子令牌匹配:正则表达式。对于那种比PEGKit更好的解决方案,它们将是更好的解决方案。

但是,我仍然认为正则表达式不是您想要在这里使用的工具(或者,至少不是唯一的工具)。

看起来您想要解析XML输入。不要使用正则表达式或PEGKit。 使用XML解析器。始终使用XML解析器来解析XML输入。

您可以选择在XML Parser(SAX,StAX,DOM,XSLT,XQuery等)之上使用另一个XML API,但是,在它之下,您应该使用XML解析器进行解析(以及当然,我列出的所有工具都可以。)

See here for more info

然后,一旦获得了正在查找的style属性字符串值,请使用Regex进行奇特的模式匹配。