文字列に文字(改行も含む)が3回以上連続して繰り返されていないことを確認するには、次のようにします。
/^(?!.*(.)\1{2})/s
入力文字列がこの正規表現に一致しないことを確認することもできます。この場合、キャラクターが3回以上連続して繰り返されていることもわかります。ネガティブルックアヘッド内の正規表現が削除されていることを除いて、これは上記とまったく同じであることに注意してください(?!pattern)
。
/^.*(.)\1{2}/s
文字列にからの文字のみが含まれているという検証を追加する必要があり、無効である[a-z]
と見なす場合は、次のようにします。aaA
/^(?!.*(.)\1{2})[a-z]+$/i
ご覧のとおり、i
フラグ(大文字と小文字を区別しない)は、キャプチャされたテキストが現在の入力と比較される方法に影響します。
空の文字列の通過を許可する場合は、に変更+
し*
ます。
有効であると見なしaaA
、大文字と小文字の両方を許可する場合:
/^(?!.*(.)\1{2})[A-Za-z]+$/
一見、前のものと同じように見えるかもしれませんが、i
フラグがないため、キャプチャされたテキストは大文字と小文字を区別しないマッチングの対象にはなりません。
以下は失敗した答えです、あなたはそれを無視することができます、しかしあなたは楽しみのためにそれを読むことができます。
この正規表現を使用して、文字列に3つの繰り返し文字(改行であっても)が含まれていないことを確認できます。
/^(?!.*(.)(?:.*\1){2})/s
入力文字列がこの正規表現に一致しないことを確認することもできます。この場合、キャラクターが3回以上繰り返されていることもわかります。ネガティブルックアヘッド内の正規表現が削除されていることを除いて、これは上記とまったく同じであることに注意してください(?!pattern)
。
/^.*(.)(?:.*\1){2}/s
文字列にからの文字のみが含まれているという検証を追加する必要があり、無効である[a-z]
と見なす場合は、次のようにします。aaA
/^(?!.*(.)(?:.*\1){2})[a-z]+$/i
ご覧のとおり、i
フラグ(大文字と小文字を区別しない)は、キャプチャされたテキストが現在の入力と比較される方法に影響します。
有効であると見なしaaA
、大文字と小文字の両方を許可する場合:
/^(?!.*(.)(?:.*\1){2})[A-Za-z]+$/
一見、前のものと同じように見えるかもしれませんが、i
フラグがないため、キャプチャされたテキストは大文字と小文字を区別しないマッチングの対象にはなりません。