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