英字、ハイフン、アンダースコアの正規表現が必要です
例
マッチ :
govind-malviya govind_malviya govind123 支配する
合わない
ゴヴィン・マルヴィヤ govind.malviya govind%malviya 腕錶生活 ヴーカンノ-же
これを試してください:
^[A-Za-z\d_-]+$
A-Za-z
アルファベットを許可します。
\d
数を許可します。
_
アンダースコアを許可します。
-
ハイフンを許可します。
^
と$
は、それぞれ文字列の開始と終了を表します。
これを試して:
(?-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)»
[\w-]+
これが必要です。
\w
単語の文字です。これは、 toまたは from toまたは from toまたは underscore[a-zA-Z1-9_]
の文字を意味するのと同じです。Soは、単語の文字またはハイフンを意味します。1回以上という意味a
z
A
Z
1
9
[\w-]
+