14

英字、ハイフン、アンダースコアの正規表現が必要です

マッチ :

govind-malviya
govind_malviya
govind123
支配する

合わない

ゴヴィン・マルヴィヤ
govind.malviya
govind%malviya
腕錶生活
ヴーカンノ-же
4

3 に答える 3

26

これを試してください:

^[A-Za-z\d_-]+$

A-Za-zアルファベットを許可します。
\d数を許可します。
_アンダースコアを許可します。
-ハイフンを許可します。 ^$は、それぞれ文字列の開始と終了を表します。

于 2013-02-02T06:53:54.020 に答える
1

これを試して:

(?-i)^[a-z0-9_-]+$(?#case sensitive, matches only lower a-z)

また

(?i)^[a-z0-9_-]+$(?#case insensitive, matches lower and upper letters)

サンプルコード

try {
    Regex regexObj = new Regex("^[a-z0-9_-]+$(?#case sensitive, matches only lower a-z)", RegexOptions.Multiline);
    Match matchResults = regexObj.Match(subjectString);
    while (matchResults.Success) {
        for (int i = 1; i < matchResults.Groups.Count; i++) {
            Group groupObj = matchResults.Groups[i];
            if (groupObj.Success) {
                // matched text: groupObj.Value
                // match start: groupObj.Index
                // match length: groupObj.Length
            } 
        }
        matchResults = matchResults.NextMatch();
    } 
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}

正規表現の構造

// (?-i)^[a-z0-9_-]+$(?#case sensitive, matches only lower a-z)
// 
// Options: ^ and $ match at line breaks
// 
// Match the remainder of the regex with the options: case sensitive (-i) «(?-i)»
// Assert position at the beginning of a line (at beginning of the string or after a line break character) «^»
// Match a single character present in the list below «[a-z0-9_-]+»
//    Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
//    A character in the range between “a” and “z” «a-z»
//    A character in the range between “0” and “9” «0-9»
//    The character “_” «_»
//    The character “-” «-»
// Assert position at the end of a line (at the end of the string or before a line break character) «$»
// Comment: case sensitive, matches only lower a-z «(?#case sensitive, matches only lower a-z)»
于 2013-02-02T06:53:12.643 に答える
-2

[\w-]+これが必要です。
\w単語の文字です。これは、 toまたは from toまたは from toまたは underscore[a-zA-Z1-9_]の文字を意味するのと同じです。Soは、単語の文字またはハイフンを意味します。1回以上という意味azAZ19[\w-]
+

于 2013-02-02T06:26:18.057 に答える