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