如何解决检查正则表达式模式是否受长度限制
这是一个简单的问题,但找不到简单的答案。
我需要根据一些限制来验证服务之间的数据传递。 限制之一是每个字符串将具有一些已定义的(不一定是直接的)最大长度。
使用的限制之一是正则表达式模式限制。
例如:pattern=".*\.."
不受长度限制。因为可以匹配hey.
或heeeey.
或任何以.
结尾的任意长度的字符串
pattern="\d{2,5}"
受长度限制,因为此字符串的最大长度为5。
是否有一些实用程序,脚本或函数来检查给定的正则表达式模式是否受长度限制,或者我必须编写自己的脚本?
解决方法
让我改一下您的问题:
问题是普通语法师是否描述了可决定的无限语言?
这个问题的答案是肯定的(more details here)。对于要接受无限语言的有限状态自动机(相当于正则语法或正则表达式),它需要包含一个循环。由于FSA可以表示为图形,因此只需检查它是否为DAG。有没有已经做到的算法?我很惊讶,因为花了我很长时间才找到声称该问题可判定的来源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。