是否存在用于除字符串之外的序列的正则表达式引擎?在我看来,字符串并没有什么特别的限制它们的正则表达式,它们只是字符序列。
例如,如果我有Buffalo对象的列表,我想检查我的列表是否匹配超过5英尺高的4到7个Buffalo,然后是一个白色的Buffalo,然后是对前面4-7个Buffalo的反向引用,然后是列表的末尾,有没有引擎支持这样的东西?
我现在没有这个需要,只是好奇而已。
发布于 2015-07-22 14:04:47
正则表达式适用于字符串,而不是对象。如果想要匹配对象键或值,就必须遍历它们。
发布于 2015-08-05 03:00:57
查看Boost's Regex和C++11的std::basic_regex。它似乎允许您指定类型和一些特征作为模板参数。但是,它不能让您对类型或方法进行更复杂的比较。
一般而言,正则表达式与底层对象本身的等价性概念紧密相关。除此之外,还有一个与"regular expression“概念无关的附加功能集。
这给我提出的问题是...为什么看起来没有一个库可以做你所提议的事情呢?我认为这里的关键是正则表达式通常用于处理半结构化或非正式结构化数据。但对象是非常正式的结构,即使是在相对无类型的语言中,如Javascript。在这一点上,程序员倾向于使用语言结构来组织他们认为合适的数据,而不是重新解释更通用的结构,因为这似乎会使事情变得不那么惯用。事实上,不必要的正则表达式似乎被视为hack。
试着想象一下这样的用例:我想要一个完整的模式匹配语言来处理有序的对象序列,但最终的场景是结构化事件日志可能会有一些有趣的事件间事件发生。例如,在包嗅探网络中寻找更高级别的模式。也许还有其他一些我没有考虑到的数据挖掘应用程序?
https://stackoverflow.com/questions/31526710
复制相似问题