2011-12-13 29 views
2

我有一個ASCII垃圾的二進制文件,其中包含一些XML代碼的snipplets。在二進制文件中查找代碼snipplets

我正在尋找一個(最好是快速)算法,可以在這個二進制文件中找到這些XML snipplets。

(就像正則表達式,但做一個上下文無關文法匹配模式。)

我想以某種概括算法爲其他上下文無關文法爲好。

任何想法?

+0

爲什麼它必須是CFG?爲什麼不是一個相對簡單的正則表達式就夠了?你知道關於XML的一些東西嗎(例如根標籤的名字)? – svick

+0

因爲你不能用正則表達式解析XML。 我說的XML只是一個例子,實際上我有語法和解析器的Javascript,並尋找隱藏在二進制文件中的JavaScript代碼。 – Calmarius

+0

你知道你想識別/檢測的片段/片段嗎?你想同時檢測多少個? – wildplasser

回答

0

通常,解析器將解析應該屬於該語言的句子,而不是解釋屬於該語言的一個(或多個)語句隱藏在其中的任意句子。

我建議你使用你的語法和正則表達式的開始符號來檢查它在ASCII垃圾中的位置,一旦你找到了它,就使用你的語法分析器對該符號開始的文本和其餘的句子查看解析器停止解析的位置和錯誤。然後你必須弄清JS代碼是否好,取決於錯誤發生的位置。

我不知道有什麼算法可以實現你想要的功能,但我想有人可能以前需要這個,因爲它實際上很有用。也許你可以在Grune和Jacobs的書Parsing Techniques中找到一些有趣的東西。

相關問題