正規表現文字括弧内のハイフン
正規表現文字括弧を定義する場合、ハイフン文字 (-) を含めるのが難しい場合があります。 。これは、ハイフンが正規表現の範囲演算子として使用され、一致する文字の範囲を示すためです。文字括弧内にリテラルのハイフンを含めるには、バックスラッシュ () を使用してエスケープする必要があります。
あなたの場合、正規表現:
/^[a-zA-Z0-9.-_]+$/
は、次の文字列のみと一致しようとしています。文字、数字、ピリオド (.)、およびハイフン (-) 文字が含まれます。ただし、文字括弧内にハイフンが配置されているため、範囲演算子として扱われ、「a」と「-」の間の文字範囲が一致します。
これを修正するにはでは、次の変更された正規表現に示すように、バックスラッシュを使用してハイフンをエスケープできます。
/^[a-zA-Z0-9.\-_-]+$/
これにより、ハイフン文字が確実に文字として扱われます。範囲演算子としてではなく、リテラル文字として使用します。あるいは、以下に示すように、ハイフンを文字括弧の先頭または末尾に配置することもできます。
/^[.-a-zA-Z0-9_]+$/
ハイフンの位置を変更することで、ハイフンを文字括弧に適切に含めることができ、次のことが保証されます。検証式で文字通り一致します。
以上が正規表現の文字括弧内でハイフンを適切にエスケープまたは配置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。