C# 如何修改此正则表达式以不允许使用空格?

C# 如何修改此正则表达式以不允许使用空格?,c#,regex,C#,Regex,我有以下正则表达式,用于指定允许用户键入的字符: @"^[A-Za-z0-9/!\$%\^&\*\(\)\-_\+\[\]\{\}\;\:\'\£\@\#\.\?]*$ 我知道'\s'是空格的字符类,但如何将其添加到正则表达式中,使其排除在外?我在堆栈溢出上搜索了这个问题——这些问题提供了排除空白的解决方案,但没有提供如何在现有正则表达式中使用空白的解决方案。如果我像添加其他字符一样添加它,它的意思是“允许空白” 编辑:不确定为什么会被标记下来?感谢大家的回答在正则表达式中,^方括号内

我有以下正则表达式,用于指定允许用户键入的字符:

@"^[A-Za-z0-9/!\$%\^&\*\(\)\-_\+\[\]\{\}\;\:\'\£\@\#\.\?]*$
我知道'\s'是空格的字符类,但如何将其添加到正则表达式中,使其排除在外?我在堆栈溢出上搜索了这个问题——这些问题提供了排除空白的解决方案,但没有提供如何在现有正则表达式中使用空白的解决方案。如果我像添加其他字符一样添加它,它的意思是“允许空白”


编辑:不确定为什么会被标记下来?感谢大家的回答

在正则表达式中,^方括号内表示否定,因此添加^\s表示不是空白。

首先,您不需要所有这些转义。 其次,正则表达式已经不允许空白

@"^[A-Za-z0-9\[\]/!$%^&*()\-_+{};:'£@#.?]*$"
[]定义一组允许的字符,后跟*表示字符集中的字符可以是零次或多次


^匹配开头,$匹配结尾,因此/s不在其中意味着不允许使用空格。

在正则表达式中,如果不写入\s。这意味着您的正则表达式不允许任何空格

例如: 1如果我不想允许任何用户在文本框中输入空格,则正则表达式的格式为:

正则表达式字母=新正则表达式@^[a-z]*$

2如果允许用户在文本框中输入任何空格,则正则表达式的格式为:

正则表达式字母=新正则表达式@^[a-z\s]*$

3在正则表达式中,^表示开始,$表示结束

注:^\s表示对\s的否定

Regex regfname=new Regex@^[^\s][a-zA-Z]*$

此代码不允许任何空格和空文本框


我希望这将有助于您理解正则表达式中空格的概念。

它目前接受空白吗?我测试它只是为了确定,正如我所想,它已经排除了空白…你说排除它是什么意思?当前你的正则表达式不需要这么多的转义字符——你只需要在字符类中逃出[/]就不允许空白,所以它已经被排除了。@ ODD,不,你也可以在字符类中使用。@ JAMIEC,他也应该逃离-----因为它在字符类的中间。字符类开头的“^”是否定类。^在像OP这样的中间,刚好包含了字符类中的字符。在描述中,您仍然得到了它。DASH需要在字符类内逃逸,或者将其移动到类的开始或结束。在这里,它将允许ASCII表中的任何字符从到,也包括-@stema,感谢您指出这一点。在我的回答>>中,我错过了很多东西,OP已经理解了\s的目的:他们需要的是在特定的正则表达式模式中使用它的建议。你的问题没有解决这个问题,所以没有什么帮助。