【发布时间】:2014-01-31 15:38:30
【问题描述】:
我正在尝试为 php 的 preg_match 找到一个正则表达式,它允许字母数字字符带下划线,但下划线必须在字符之间(而不是字符串的开头或结尾),并且每个下划线旁边永远不能有 2 个下划线其他。
例子:
无效:
_name
na_me_
na__me
有效:
na_me
na_m_e
我发现的大部分内容都适用,但不能防止重复下划线是:
/^[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$/
但就像我说的,这仍然允许像 na__me 这样的情况。
有人有什么想法吗?谢谢!
【问题讨论】:
-
语言是什么?
-
@John McMullen 有什么不好?你的不允许
na__me -
英文,抱歉没有指定@Jonny5,我希望它禁止 na__me.. 我列出的那个允许它(基本上,只找到 na_me,而不是 na__me)
-
@JohnMcMullen 当我测试你的时,它似乎不允许重复的下划线。请参阅regex101.com/r/bX4wW8 唯一匹配的是您显示标记为有效的那个
-
奇怪,当我在第二台服务器以及 regex101 检查站点上再次尝试时,它工作正常...我想这都是为了 null...
标签: php regex preg-match