Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP简单PCRE正则表达式只允许1点还是不允许?_Php_Regex_Pcre - Fatal编程技术网

PHP简单PCRE正则表达式只允许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]+)$ 将点放置在中心,然后允许它在两侧被包围。这应该可以做到: /^(?:\.[

我正在尝试创建用于别名验证的正则表达式:

我允许字母、数字和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]+|[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的答案,我感谢你的努力。注释表明句点可以出现在任何位置。在这种情况下,只需将这两个位置中的+替换为*。注释表明句点可以出现在任何位置。在这种情况下,只需将这两个位置中的+替换为*。