0

可能重复:
如何获得正则表达式来检查字符串是否仅包含字母字符 [az] 或 [AZ]?
PHP:如何检查字符串是否以指定的字符串开头?

我尝试编写自己的正则表达式,但我很烂

#^(AJ\_)?.*#

问题是,我会像这样创建一个字符串:AJ______ClassNameBlahBlahBlah并且我的函数返回 TRUE。我所需要的只是AJ_和它后面的文字。

function isAnAJMClass($classname) {
     if (preg_match('#^(AJ\_)?.*#', $classname)) {
          return TRUE;
     } else {
         return FALSE;
     }
}
4

2 回答 2

1

如果你确定总是AJ_在字符串的开头,你可以使用strpos($haystack, $needle)正则表达式来代替。

function isAnAJMClass($classname) {
     if (strpos($classname, 'AJ_') === 0) {
          return TRUE;
     } else {
         return FALSE;
     }
}

substr($str, $start, $len)也可以使用

if (substr($classname, 0, 3) === 'AJ_') {
}

通过这些方式,读者可能可以更快地阅读代码。独立于您使用的方法,请始终评论该功能。

于 2013-01-05T15:41:30.840 回答
0

替换这个:

preg_match('#^(AJ\_)?.*#', $classname)

有了这个:

preg_match('/^AJ_[a-zA-Z]+/', $classname)    

这是您需要的正确正则表达式,它说:

匹配以下开头的每个字符串:AJ_ 后跟小写或大写字母

于 2013-01-05T15:36:07.573 回答