正規表現の文字長の制限
正規表現を使用して入力を検証する場合、文字の長さを制限する必要がある場合があります。マッチ。これは、アンカーとゼロ幅アサーションを使用して実現できます。
質問で示されている例では、正規表現を使用して、文字、数字、および特定の特殊文字のみを含む文字列と一致し、文字長の制限はありません。ただし、量指定子 {1,15} を使用して長さを 15 文字に制限しようとすると、構文エラーが発生します。
この理由は、量指定子をアンカーに適用できないためです。文字長を制限するための別の方法は、文字列の先頭にアンカーされた先読みを使用することです。
変更された式:
^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*$
この式には先読みが含まれています (?= .{1,15}$)、文字列の末尾にある 1 ~ 15 文字のシーケンスをチェックします。式の主要部分は、入力文字列の長さを比較します。
同様に、さまざまなプログラミング言語用に式を作成できます。
Flavor | Expression |
---|---|
ECMAScript, C | ^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*$ |
Other regex flavors, Python | A(?=.{1,15}z)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*z |
その他の考慮事項
以上が正規表現の文字長を制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。