PHP简单PCRE正则表达式只允许1点还是不允许?
我正在尝试创建用于别名验证的正则表达式: 我允许字母、数字和1点 我已经做了以下工作:PHP简单PCRE正则表达式只允许1点还是不允许?,php,regex,pcre,Php,Regex,Pcre,我正在尝试创建用于别名验证的正则表达式: 我允许字母、数字和1点 我已经做了以下工作: /^[a-z0-9\\.]+$/i 但是它允许超过1个点?尝试以下操作: ^(?:[a-z0-9]+\.?[a-z0-9]*|[a-z0-9]*\.?[a-z0-9]+)$ 将圆点放置在中心,然后允许它在两侧被包围。尝试以下操作: ^(?:[a-z0-9]+\.?[a-z0-9]*|[a-z0-9]*\.?[a-z0-9]+)$ 将点放置在中心,然后允许它在两侧被包围。这应该可以做到: /^(?:\.[
/^[a-z0-9\\.]+$/i
但是它允许超过1个点?尝试以下操作:
^(?:[a-z0-9]+\.?[a-z0-9]*|[a-z0-9]*\.?[a-z0-9]+)$
将圆点放置在中心,然后允许它在两侧被包围。尝试以下操作:
^(?:[a-z0-9]+\.?[a-z0-9]*|[a-z0-9]*\.?[a-z0-9]+)$
将点放置在中心,然后允许它在两侧被包围。这应该可以做到:
/^(?:\.[a-z0-9]+|[a-z0-9]+(?:\.[a-z0-9]*)?)$/i
这允许字符串执行以下操作之一:
- 从一个点开始,后跟至少一个字母数字字符,或
- 从一个或多个字母数字字符开始,后面可能跟一个点和零个或多个字母数字字符
- 这应该可以做到:
/^(?:\.[a-z0-9]+|[a-z0-9]+(?:\.[a-z0-9]*)?)$/i
这允许字符串执行以下操作之一:
- 从一个点开始,后跟至少一个字母数字字符,或
- 从一个或多个字母数字字符开始,后面可能跟一个点和零个或多个字母数字字符
- 我认为允许点作为第一个或最后一个字符不是一个好主意,在这种情况下:
/^[a-z0-9]+\.?[a-z0-9]+$/i
我认为允许点作为第一个或最后一个字符不是一个好主意,在这种情况下:
/^[a-z0-9]+\.?[a-z0-9]+$/i
圆点可以出现在任何位置吗?@Gumbo-是的,它可以出现在任何位置。那么单是圆点怎么办?圆点不能独立存在-请理解这些问题(应该澄清任何困惑)-我应该更准确。圆点可以出现在任何位置吗?@Gumbo-是的,它可以出现在任何位置。那么单是圆点怎么办?圆点不能单独存在-请理解这些问题(应该澄清任何混淆)-我应该更精确一些…还有空字符串。@Gumbo:的确,包括了空字符串。将{}放在类中是行不通的,我不知道如何限制类中某个项的一次出现,除非将其分解@sexyprout:原来的问题也是。仅供参考,量词
?
是{0,1}
@meagar:touch,just aweed.-)的一个方便的缩写形式现在应该更好了,虽然@Gumbo比我快了几分钟。虽然我用了Gumbo的答案,但我感谢你的努力……还有空字符串。@Gumbo:事实上,包括一个空字符串。将{}放在类中是行不通的,我不知道如何限制类中某个项的一次出现,除非将其分解@sexyprout:原来的问题也是。仅供参考,量词?
是{0,1}
@meagar:touch,just aweed.-)的一个方便的缩写形式现在应该更好了,虽然@Gumbo比我快了几分钟。虽然我用了Gumbo的答案,我感谢你的努力。注释表明句点可以出现在任何位置。在这种情况下,只需将这两个位置中的+替换为*。注释表明句点可以出现在任何位置。在这种情况下,只需将这两个位置中的+替换为*。