Tag: 拼图

正则表达式:匹配包含数字和字母的字符串,但不包含只是数字的字符串

题 我希望能够使用单个正则表达式(如果可能)要求字符串适合[A-Za-z0-9_]但不允许: 字符串只包含数字或/和符号。 以符号开头或结尾的字符串 彼此相邻的多个符号 有效 test_0123 t0e1s2t3 0123_test te0_s1t23 t_t 无效 t__t ____ 01230123 _0123 _test _test123 test_ test123_ 规则的原因 这样做的目的是过滤我正在处理的网站的用户名。 出于特定原因,我已达到规则。 仅包含数字和/或符号的用户名可能会导致路由和数据库查找出现问题。 /users/#{id}的路由允许id为用户的id或用户的名称。 所以名称和ID不应该碰撞。 _test看起来很奇怪,我不相信它是有效的子域名,即_test.example.com 我不喜欢t__t作为子域的外观。 即t__t.example.com

对回文产品问题感到困惑

我一直在学习Ruby,所以我想我会尝试一些项目的Euler难题。 令人尴尬的是,我只是解决了问题4 … 问题4如下: 回文数字读取两种方式相同。 由两个2位数字的乘积制成的最大回文是9009 = 91×99。 找到由两个3位数字的乘积制成的最大回文。 所以我想我会在一个嵌套的for循环中从999循环到100并对回文进行测试,然后当我找到第一个(应该是最大的一个)时突破循环: final=nil range = 100…1000 for a in range.to_a.reverse do for b in range.to_a.reverse do c=a*b final=c if c.to_s == c.to_s.reverse break if !final.nil? end break if !final.nil? end puts final 这确实输出了回文580085,但显然这不是该范围内两个三位数字的最高乘积。 奇怪的是,如果我将范围更改为10 … 100,则相同的代码成功返回9009,就像在示例中一样。 谁能告诉我哪里出错了? 还有,有一种更好的方法可以打破内部循环吗? 谢谢