1. ホーム
  2. regex

文字列の中に大文字が連続しているかどうかを調べるための正規表現

2023-10-29 12:51:32

質問

以下の場合の正規表現が知りたいです。

文字列はアルファベットのみである。大文字で始まり、小文字が続いていなければならない。その後、スモールレターまたはキャピタルレターが続く。

^[A-Z][a-z][A-Za-z]*$

しかし、この文字列は連続した大文字を含んではいけません。このロジックを正規表現に追加するにはどうしたらよいでしょうか?

それは HttpHandler は正しいですが HTTPHandler は間違いです。

どのように解決するのですか?

を見てみましょう。 tchristの回答 特に、ウェブや国際的なもののために開発するのであれば。

Oren Trutner の回答 は全く正しくありません(一致しなければならないのに一致しない "RightHerE"のサンプル入力を見てください)。

これが正しい解答です。

(?!^.*[A-Z]{2,}.*$)^[A-Za-z]*$

説明されています。

(?!^.*[A-Z]{2,}.*$)  // don't match the whole expression if there are two or more consecutive uppercase letters
^[A-Za-z]*$          // match uppercase and lowercase letters

/編集

解決のための鍵は負のルックアヘッドです。参照してください。 ルックヘッドとルックビハインドゼロ長アサーション