2014-10-01 51 views
1

我想添加一個符號令牌才能通過下面ParseKit:你可以在ParseKit中使用通配符嗎?

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

我想知道如果ParseKit允許通配符添加符號時,如:

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

我想成爲能夠在解析過程中從令牌中提取通配符。

ParseKit有這種可能嗎?

回答

1

開發商ParseKit在這裏。

我覺得以這種方式使用ParseKit不是一個好主意。

ParseKit(及其後繼PEGKit)擅長標記化的輸入,然後令牌水平解析。

您提供的示例輸入中有幾個自然標記,但您要在此處執行的操作是忽略這些自然標記,將它們組合成一個輸入塊,然後使用模式進行花式子標記匹配。

有一個流行的強大的工具,用於使用模式的花式子令牌匹配:正則表達式。與PEGKit相比,它們將是更好的解決方案。

不過,我仍然不認爲正則表達式是要在這裏使用(或者,至少不是唯一工具)的工具。

它看起來像你想解析XML輸入。不要使用正則表達式或PEGKit。 使用XML解析器。始終使用XML解析器來解析XML輸入。

您可以選擇使用另一個XML解析器(SAX,StAX,DOM,XSLT,XQuery等)頂層的XML API,但在它下面,您應該使用XML解析器進行解析(並且,當然,我列出的所有這些工具都可以)。

See here for more info

然後,一旦你有style屬性字符串值你正在尋找,使用正則表達式來做花哨的模式匹配。

+0

謝謝你的回答,託德!順便說一句,我不知道ParseKit被認爲是棄用。我沒有在ParseKit網頁上的任何地方看到。可能想讓人們知道它的繼任者:) – 2014-10-01 18:12:36

相關問題