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



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

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

我知道' s ' 是空格的字符类,但是如何将其添加到正则表达式中以将其排除在外?我已经在 Stack Overflow 上搜索了这个 - 这些问题提供了排除空格的解决方案,但没有提供如何在现有正则表达式中使用它。如果我像添加其他字符一样添加它,这意味着"允许空格"?

编辑:不知道为什么这被标记了?感谢大家的回答

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

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

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

^ 匹配开头,$ 匹配结尾,因此/s 不在任何地方的事实意味着不允许使用空格。

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

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

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

正则

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

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

正则表达式

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

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

注意:^\s 表示 "\s" 的否定

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

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

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

最新更新