任何列表上正则表达式的泛化

paf*_*fcu 14 regex

我正在使用包含整数的大型列表,我想对它们进行一些模式匹配(比如查找某些序列).正则表达式将是最佳选择,除了它们似乎总是只处理字符列表,即字符串.是否有任何库(使用任何语言)可以处理任意类型的列表?

我知道我可以将我的整数列表转换为字符串,然后进行正常的正则表达式搜索,但这似乎有点浪费和不优雅.

编辑:

我的要求很简单.不需要嵌套列表,不需要花哨的字符类.基本上我只对可能变得非常复杂的序列的出现感兴趣.(例如像"[abc]{3,}.([ab]?[^a]{4,7})"等,其中a,b,c是整数).这应该可以概括为可以检查相等的任何类型.对于一个可枚举的类型,你也可以得到像"[a-z]"工作一样的东西.

Tim*_*ker 2

根据定义,正则表达式仅匹配字符串。

当然,理论上您可以构造一个等效的语法,例如数字列表。使用新的标记,例如\e偶数、\o奇数、\s平方数、\r实数等,这样

[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

将匹配

^(\o\e)*$
Run Code Online (Sandbox Code Playgroud)

或者

[ln(3), math.pi, sqrt(-1)]
Run Code Online (Sandbox Code Playgroud)

将匹配

^\R*$
Run Code Online (Sandbox Code Playgroud)

听起来像是一个有趣的项目,但也像是一个非常困难的项目。如何扩展它来处理任意列表、嵌套列表和所有列表,这超出了我的范围。