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

时间:2012-05-02 09:19:15

标签: c# regex

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

@"^[A-Za-z0-9/!\$%\^&\*\(\)\-_\+\[\]\{\}\;\:\'\£\@\#\.\?]*$

我知道'\s'是空格的字符类,但是如何将它添加到正则表达式中以便排除它?我在Stack Overflow上搜索过这个问题 - 这些问题提供了排除空白区域的解决方案,但没有提供如何在现有正则表达式中使用它的方法。如果我像其他人物一样添加它,那就意味着“允许空格”?

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

3 个答案:

答案 0 :(得分:3)

方括号内的正则表达式^表示否定,因此添加^\s意味着“不是空格。”

答案 1 :(得分:3)

首先,你不需要所有这些逃脱。 其次,正则表达式已经不允许使用空格。

@"^[A-Za-z0-9\[\]/!$%^&*()\-_+{};:'£@#.?]*$"

[]定义一组允许的字符(后跟*表示字符集中的字符可以是零或更多次)。

^匹配开头,$匹配结尾,所以/ s不在任何地方,这意味着不允许使用空格。

答案 2 :(得分:0)

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

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

正则表达式=新的正则表达式(@“^ [a-z] * $”);

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

正则表达式=新的正则表达式(@“^ [a-z \ s] * $”);

3)在正则表达式中,“^”表示开头,“$”表示结束。

注意:^ \ s表示否定“\ s”

Regex regfname = new Regex(@“^ [^ \ s] [a-zA-Z] * $”);

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

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

相关问题