2013-02-02 36 views
6

Tôi cần regex cho các ký tự tiếng Anh, dấu gạch ngang và gạch chânRegex cho các ký tự tiếng Anh, dấu gạch ngang và gạch chân

Ví dụ

trận đấu:

 
govind-malviya 
govind_malviya 
govind123 
govind 

Không Phù hợp

 
govind malviya 
govind.malviya 
govind%malviya 
腕錶生活 
вкусно-же 
+0

lý do bỏ phiếu xuống? xin vui lòng bình luận để tôi có thể cải thiện thời gian tới –

+0

Bởi vì không có nỗ lực đã được thực hiện một phần của bạn để giải quyết vấn đề. Về cơ bản, bạn hỏi "làm việc này cho tôi". – Blender

+0

Tôi đã tìm thấy nhiều chủ đề ngăn xếp và blog nhưng tất cả đều không hoạt động trong trường hợp của tôi và tôi không thể chỉnh sửa regex vì tôi không có ý tưởng về regex. dù sao thì tôi cũng sẽ giải quyết vấn đề này lần sau. –

Trả lời

15

thử này ra:

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

A-Za-z sẽ cho phép bảng chữ cái.
\d sẽ cho phép số.
_ sẽ cho phép gạch dưới.
- sẽ cho phép gạch nối. ^$ đại diện cho bắt đầu và kết thúc chuỗi tương ứng.

-1

[\w-]+ này là những gì bạn cần.
\w là ký tự từ. nó giống như [a-zA-Z1-9_] có nghĩa là một ký tự từ a đến z hoặc từ A đến Z hoặc từ 1 đến 9 hoặc gạch dưới. Vì vậy, [\w-] có nghĩa là một ký tự từ hoặc dấu gạch nối.
+ có nghĩa là một hoặc nhiều lần

+0

có hợp lệ cho dấu nối (-) không? –

+0

Câu trả lời này không đúng theo http://msdn.microsoft.com/en-us/library/20bw873z.aspx#WordCharacter – dtb

+0

Tôi đã chỉnh sửa lại lần nữa với mẫu '[\ w -] +' – shift66

0

Hãy thử điều này:

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

hoặc

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

mẫu mã

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 
} 

regex giải phẫu

// (?-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)» 
Các vấn đề liên quan