簡體   English   中英

C#正則表達式匹配字母,數字和下划線

[英]C# Regular Expression to match letters, numbers and underscore

我想在C#中創建一個正則表達式模式。 該模式只允許:

  • 數字
  • 下划線

到目前為止我運氣不好(我不擅長RegEx)。 這是我到目前為止所嘗試的:

// Create the regular expression
string pattern = @"\w+_";
Regex regex = new Regex(pattern);

// Compare a string against the regular expression
return regex.IsMatch(stringToTest);

編輯:

@"^[a-zA-Z0-9\_]+$"

要么

@"^\w+$"

@ “^ \\ w + $”

\\ w匹配任何“單詞字符”,定義為數字,字母和下划線。 它具有Unicode感知功能,所以它會與變音符號等字母匹配(比試圖像[A-Za-z0-9_]那樣只能匹配英文字母的字符串更好)。

開頭的^表示“匹配字符串的開頭”,最后的$表示“匹配字符串的結尾”。 沒有這些,例如,如果你只有@“\\ w +”,那么“@@ Foo @@”將匹配,因為它包含一個或多個單詞字符。 使用^和$,然后“@@ Foo @@”將不匹配(這聽起來像你正在尋找的那樣),因為你沒有字符串的開頭,后跟一個或多個字 - 字符串后跟字符串結尾。

嘗試使用像http://www.weitz.de/regex-coach/這樣的東西,它可以讓你以交互方式開發正則表達式。

它是為Perl設計的,但幫助我了解正則表達式在實踐中是如何工作的。

正則表達式

packedasciiRegex = new Regex(@"^[!#$%&'()*+,-./:;?@[\]^_]*$");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM