字符串只包含下划线

时间:2013-07-10 14:18:10

标签: php regex

我正在寻找一个正则表达式解决方案,它可以检查字符串是否包含下划线___

/[a-z]/不起作用,[^_]

也不起作用

4 个答案:

答案 0 :(得分:2)

只有下划线?试试这个:

/^_+$/

这将匹配由一个或多个下划线组成的字符串。它与空字符串不匹配。

答案 1 :(得分:1)

要检查字符串是否有下划线,您只需使用 - _+

即可

要检查字符串是否包含字母或数字,请使用[a-zA-Z0-9]+

你已经半问自己了。 Anway很容易找到,你应该在发布问题之前做一些研究。

一切都是关于将字符放在正则表达式中,由[]定义,并给这个类赋予'+',这意味着一个或多个。

您也可以使用|

的运算符

/^(_+|[a-zA-Z]+|[0-9]+)$/

DEMO

答案 2 :(得分:1)

检查字符串是否仅包含下划线:

if (strspn($str, '_') == strlen($str)) {
    // only underscores
}

另请参阅:strspn()

理论上,空字符串也只包含下划线;如果这是不合需要的,您还需要检查strlen($str)是否为非零。

答案 3 :(得分:0)

这样的事可能会这样做。正则表达式检查你是否有任何其他字符,修剪只检查下划线

if( !preg_match("/[^0-9a-z\_]/si", $string) && trim($string,"_")!=""){
    // Code here
}

您已更改帖子。你可以做其中任何一个

if( trim($string,"_")=="") ){ /* _ only */ }
if( str_replace("_", "", $string)=="") ){/* _ only */}
if( !preg_match("/^_/si", $string) ){/* _ only */}