ホームページ > バックエンド開発 > PHPチュートリアル > PHP の通常のマッチングが失敗するのはなぜですか?助けを求める

PHP の通常のマッチングが失敗するのはなぜですか?助けを求める

WBOY
リリース: 2016-06-23 14:28:33
オリジナル
965 人が閲覧しました

通常の php

if(preg_match("^[a-zA-Z][a-zA-Z0-9_-]{5,19}$", "abc-mmm") )
echo "true";
else echo "false";

?>

数字、文字、アンダースコア、マイナス記号を許可するアカウントの正規表現を確認したいのですが、なぜですかこの表現は成功ではありませんか?

警告: preg_match() [function.preg-match]: test.php の 3 行目に終了区切り文字 '^' が見つかりません
false

"^[a-zA-Z][a-zA-Z0 - 9_-]{5,19}$"、""を削除するのは間違いです、知っておいてください(utf8形式)

ディスカッションに返信(解決策)


preg_match("/^[a-zA-Z ] [a-zA-Z0-9_-]{5,19}$/", "ml-virgil") )


前後に "/" を追加してみました。これはなぜですか?私はphpの初心者なので、いくつかの指導をお願いします

それは区切り文字と呼ばれます。区切り文字がないと、PHP は ^[a-zA-Z][a-zA-Z0-9_-]{5,19}$ が変数ではなく文字列であると想定します。

私たちはよく「エスケープ文字」と呼びます。これは、一部の特殊な記号をエスケープするために使用されます。

それは区切り文字と呼ばれます。区切り文字がないと、PHP は ^[a-zA-Z][a-zA-Z0-9_-]{5,19}$ が変数ではなく文字列であると想定します。 そこで質問させてください。英語と中国語を「n」で結びつけてmysqlに保存しました。なぜphpadminでは「0」が見つかるのでしょうか?長い間私を悩ませてきました。 。 。

完了しました。SQL ステートメントの問題は本当に不注意です。投稿しました、ありがとうございます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート