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 に答える