2015-07-20 66 views
2

是否存在除字符串以外的序列的正則表達式引擎?對我來說,對於限制正則表達式的字符串沒有什麼特別之處,它們只是字符序列。非字符串序列的正則表達式

舉例來說,如果我有Buffalo對象的名單,我想檢查我的列表匹配超過5 4和7之間Buffalo英尺高,其次是白色Buffalo,隨後反向引用到4-7 Buffalo之前,然後是列表的結尾,是否有引擎來支持這樣的事情?

我目前不需要這個,只是好奇。

回答

0

正則表達式適用於字符串,不適用於對象。如果你想匹配對象鍵或值,你將不得不遍歷它們。

0

檢出Boost's Regex和C++ 11的std::basic_regex。它似乎允許您指定類型和一些特徵作爲模板參數。但是,它並沒有給你一種方法來對類型或方法進行更復雜的比較。

通常,正則表達式與底層對象本身的平等概念非常相關。除此之外,這將成爲與「regular expression」這一概念無關的附加功能集。

這對我提出的問題是......爲什麼看起來沒有一個圖書館能夠完成你所提出的任務?我認爲關鍵在於正則表達式通常用於處理半結構化或非結構化數據。但是對象是非常正式的結構,即使是相對無類型的語言,比如Javascript。在那一點上,程序員傾向於使用語言結構來構建他們認爲合適的數據,而不是重新解釋更通用的結構化,因爲這似乎使事情變得不那麼慣用。事實上,他們不需要的正則表達式似乎被視爲黑客。

試圖想象一下用例,我希望對於有序的對象序列使用全面的模式匹配語言,但我最終只會遇到結構化事件的日誌可能會發生一些有趣的事件間事件的情況。例如,在數據包嗅探網絡中尋找更高級別的模式。也許還有一些我沒有想到的其他數據挖掘應用程序?