首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >生成正则表达式,以匹配‘m’和‘N’之间的自然数

生成正则表达式,以匹配‘m’和‘N’之间的自然数
EN

Code Golf用户
提问于 2013-03-21 07:04:11
回答 1查看 1.1K关注 0票数 8

正则表达式的类型是PCRE。

编写一个程序,输出有效的PCRE,使其与mn之间的所有自然数相匹配,而不匹配任何其他内容。不允许前导零。

例如,让mn1234321,那么程序就可以输出1(2[3-9]|[3-9]\d)|[2-9]\d\d|[123]\d\d\d|4([012]\d\d|3([01]\d|2[01]))

这与字符串完全匹配,因此^$锚点是隐式的。

我们应该努力平衡这两者:

  1. 正则表达式应该有一个合理的大小。
  2. 代码应该是短的。

让我们优化一下

code length in characters + 2*regular expression length for input 123456 and 7654321

边注:如果我们能证明最短的PCRE正则表达式的大小是O(log n)或其他什么的话,这是很有趣的。

EN

回答 1

Code Golf用户

发布于 2013-03-21 09:14:41

Javascript,得分118740839

代码语言:javascript
运行
复制
function makere(m,n){r='(';for(i=m;i<n;)r+=i+++'|';return (r+i)+')';}

我想您是否喜欢这取决于您如何定义“合理的大小”。

票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/10962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档