ホームページ > バックエンド開発 > C++ > 特殊文字を制限しながら、正規表現を使用して入力文字列の長さを制限するにはどうすればよいですか?

特殊文字を制限しながら、正規表現を使用して入力文字列の長さを制限するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-26 20:09:09
オリジナル
232 人が閲覧しました

How Can I Limit the Length of an Input String Using a Regular Expression While Restricting Special Characters?

正規表現を使用して入力文字列の長さと特殊文字を制御する

この記事では、正規表現を使用して入力文字列を検証するという課題について説明し、特に文字列の長さの制限と特殊文字の除外に焦点を当てます。 アンカーに量指定子を使用する一般的なアプローチでは、全体の長さを正確に制限できないことがよくあります。

解決策: 前向き先読みアサーション

最も効果的な解決策は、正規表現の先頭で肯定​​的な先読みアサーションを利用することです。

<code>^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
ログイン後にコピー

この式を分解してみましょう:

  • ^: 文字列の先頭と一致します。
  • (?=.{1,15}$): これは肯定的な先読みアサーションです。 (?= ... ) は先読み構文です。 .{1,15} は、任意の文字 (.) に 1 回から 15 回 ({1,15}) と一致します。 $ は文字列の末尾に一致します。 このセクション全体では、文字列の長さが 1 ~ 15 文字であることを、一致する文字をまったく消費せずに表明します。
  • [a-zA-Z0-9]*: 0 個以上の英数字と一致します。
  • [^$%^&*;:,?()""']*: 指定された特殊文字のセットにないである 0 個以上の文字と一致します。
  • $: 文字列の末尾と一致します。

先読みが重要な理由

アンカー (^ および $) で量指定子を直接使用しても、直前の要素が変更されるだけなので効果がありません。ただし、先読みアサーションは、式の残りの部分が評価されるに文字列全体の長さをチェックし、正確な長さの制御を保証します。

潜在的な問題への対処

  • 改行: 入力に改行文字が含まれている可能性がある場合は、先読みの .[sS] に置き換えて、改行を含む任意の文字と一致させます。
  • 長さの調整: {1,15} 数量子は、必要に応じて最大文字列長を簡単に調整します。

この改善されたアプローチは、正規表現を使用して入力文字列を検証し、効果的に長さを制限し、同時に特殊文字を制限するための堅牢かつ正確な方法を提供します。

以上が特殊文字を制限しながら、正規表現を使用して入力文字列の長さを制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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