繁体   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