ruby-on-rails – 正则表达式:匹配包含数字和字母的字符串,但不
题
我希望能够使用单个正则表达式(如果可能)要求字符串适合[A-Za-z0-9_]但不允许: >只包含数字或/和符号的字符串. 有效 > test_0123 无效 > t__t 规则的原因 这样做的目的是过滤我正在处理的网站的用户名.出于特定原因,我已达到规则. >仅包含数字和/或符号的用户名可能会导致路由和数据库查找出现问题. / users /#{id}的路由允许id为用户的id或用户的名称.所以名称和ID不应该碰撞. 解决方法
这完全符合您的要求:
/A(?!_)(?:[a-z0-9]_?)*[a-z](?:_?[a-z0-9])*(?<!_)z/i >至少一个字母字符(中间的[a-z]). 编辑:事实上,由于正则表达式的其余部分是如何工作的,你可能甚至不需要前瞻/外观?第一个?:括号将在字母数字之后才允许下划线,第二个?:括号赢了“ t允许下划线除非它在字母数字之前: /A(?:[a-z0-9]_?)*[a-z](?:_?[a-z0-9])*z/i 应该工作正常. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |