簡體   English   中英

用於字母和空格的 .NET RegEx

[英].NET RegEx for letters and spaces

我正在嘗試在 C# 中創建一個僅允許字母數字字符和空格的正則表達式。 目前,我正在嘗試以下操作:

string pattern = @"^\w+$";
Regex regex = new Regex(pattern);
if (regex.IsMatch(value) == false)
{
  // Display error
}

我究竟做錯了什么?

如果你只需要英語,試試這個正則表達式:

"^[0-9A-Za-z ]+$"

括號指定一組字符

0-9 : 所有數字

AZ : 全部大寫

az : 所有小寫字母

' ' : 空格

如果你需要 unicode / 國際化,你可以試試這個正則表達式:

"^[\\\\w ]+$"

這個正則表達式會匹配所有的 unicode 字母、數字和空格,這可能比你需要的要多,所以如果你只需要英文或基本的羅馬字符,第一個正則表達式會更簡單、更快地執行。

請注意,對於兩個正則表達式,我都包含了^$運算符,這意味着在開始和結束時匹配。 如果您需要將其從字符串中拉出並且不需要是整個字符串,則可以刪除這兩個運算符。

對所有帶空格的字母試試這個:

@"[\p{L} ]+$"

字符類\\w不匹配空格。 試着用替換它[\\w ]有后一個空間\\w匹配字字符和空格,您也可以替換空格\\s ,如果你想匹配任何空白。

如果除 0-9、az 和 AZ 之外,您還需要覆蓋任何重音字母,如 ï、é、æ、Ć 或 Ş,那么您最好使用 Unicode 屬性\\p{...}進行匹配,即 (注意空格):

string pattern = @"^[\p{IsLetter}\p{IsDigit} ]+$";

這個正則表達式對我很有用。

           Regex rgx = new Regex("[^a-zA-Z0-9_ ]+");
            if (rgx.IsMatch(yourstring))
            {
                var err = "Special charactes are not allowed in Tags";
            }

暫無
暫無

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

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