[英].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.