2017-05-02 17 views
1

文字列に大文字と小文字、数字とアンダースコア、および文字制限が含まれているかどうかを確認する正規表現が必要です。これらは、文字列で許可される唯一の型です。英数字とアンダースコアと文字制限の正規表現

ただし、指定された引数のすべてを含む必要はありません。

文字列が英数字または英数字で、アンダースコアまたは数字のみまたは英字のみであることを意味します。

私は、ここに提供の提案に続く:Regular Expression for alphanumeric and underscores

をし、次の式を思い付いた:だから、質問がある^([a-zA-Z0-9_]){3,15}$

:私のREGEXが間違っていますか?

+0

あなたの質問は何ですか?正規表現をテストしてほしいですか? –

+0

以下のRegexは、文字列が完全に一致するかどうかを確認するのは、文字列に指定されたすべての引数が含まれている必要があることを意味します。 @WiktorStribiżew – KING

+0

それでは、何が問題なのですか?文字列中の3〜15文字の英数字/ '_'文字を他の文字とマッチングさせますか? –

答えて

1

あなたのregex - ^([a-zA-Z0-9_]){3,15}$は、3〜15文字の長さで、ASCII文字、数字または_記号のみで構成された文字列全体と一致します。

指定された範囲(文字/数字/アンダースコア)から少なくとも3文字を含む文字列を検出するように見えます。

あなたは

[a-zA-Z0-9_](?:[^a-zA-Z0-9_]*[a-zA-Z0-9_]){2} 

以下の線形を使用することがあります。

(?:[^a-zA-Z0-9_]*[a-zA-Z0-9_]){3} 

使用パターンをRegex.IsMatchで、この方法は、部分一致することができます。

詳細

  • [a-zA-Z0-9_]が - 範囲から単一の文字に一致
  • (?:を指定 - の....
    • [^a-zA-Z0-9_]*配列に一致する非捕捉グループの開始を - 無効化された文字クラスで定義されたもの以外の0以上の文字
    • [a-zA-Z0-9_] - a指定された範囲からの文字
  • ){2} - ....正確に2回。
関連する問題