如何不允许特殊字符,但在正则表达式中允许空格?

2023-12-08

当用户在 datagridview 中输入特殊字符时,我需要填充错误消息。截至目前我有以下内容:

if (Regex.IsMatch(columnValue.ToString(),"^[A-Za-z0-9]$"))
                {
                    MessageBox.Show("You may not use special characters.", "Saving not allowed at this time", MessageBoxButtons.OK, MessageBoxIcon.Error);  

这个正则表达式可以工作,并且不允许特殊字符,但是如果字符之间有空格,则它会落入 if 语句中,而这是应该允许的。

如何让它允许空格,但不允许特殊字符?

Thanks,


我认为您只想在正则表达式中添加一个空格:

if (Regex.IsMatch(columnValue.ToString(),"^[ A-Za-z0-9]$"))

编写正则表达式时,使用逐字字符串运算符通常是一个好习惯@因为许多特殊表达式要求您使用反斜杠字符。

if (Regex.IsMatch(columnValue.ToString(), @"^[ A-Za-z0-9]$"))

如果您明确告诉正则表达式忽略模式中的空格,则需要转义空格字符。

if (Regex.IsMatch(columnValue.ToString(), @"^[\ A-Za-z0-9]$", RegexOption.IgnorePatternWhitespace))

如果您希望它们能够使用任何空白字符(空格、制表符、换行符等),您可以使用空白字符类\s

if (Regex.IsMatch(columnValue.ToString(), @"^[\sA-Za-z0-9]$"))

Update

看来您可能想要一个排除组中字符的正则表达式。

您当前的正则表达式是从字符串的开头查找^到字符串末尾$只针对组中的一个角色A-Za-z0-9。如果你想匹配完全相反的内容,你可以使用 not 运算符!在你之前Regex.IsMatch, like:

if (!Regex.IsMatch(columnValue.ToString(), @"^[ A-Za-z0-9]$"))

但是,如果您想在正则表达式中写入排除的字符组,您可以将^在你的小组中。当。。。的时候^在组内[^]它后面的任何字符都被排除在匹配之外。

正则表达式[A-Z]将匹配任何字符 A-Z。正则表达式[^A-Z]会匹配任何字符NOT A-Z.

如果这就是您正在寻找的内容,您可以将声明更改为:

if (Regex.IsMatch(columnValue.ToString(), @"[^A-Za-z0-9\ ]"))

该语句将匹配包含不在该组中的任何字符的任何字符串。因此,如果他们输入“Hello World”,它将不匹配。如果他们输入“Hello!World”,它将匹配,因为“!”不在组中。

注:领先的^和尾随$被删除。在这个正则表达式中,我们不关心字符串的长度,因为我们只匹配字符串中我们不期望的字符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何不允许特殊字符,但在正则表达式中允许空格? 的相关文章

随机推荐

  • 限制 Github API 只能访问某个用户的一个存储库

    我们有一个 Web 应用程序 它允许用户编写代码并将其存储在我们服务器上的内部 git 存储库中 现在我们希望允许用户与他的 github 存储库共享他的代码 于是我们查阅了github的api文档 找到了通过ouath2的方法 然而 为了
  • 在 VB.NET 中跨表单共享变量的最佳实践

    我需要在 VB NET 中的两个窗体之间共享变量 其中一个是主窗体 另一个是子窗体 我一直在寻找 找到了一些方法 我想用最好的方法来做到这一点 我在下面列出了几个选项 请评论哪一个是最佳选择 在其中一种形式中创建静态 共享变量 并通过以下方
  • JavaScript - 从具有 m 个元素的 n 个数组生成组合[重复]

    这个问题在这里已经有答案了 我在编写代码时遇到困难 无法在 JavaScript 中从 n 个数组 其中有 m 个元素 生成组合 我在其他语言中看到过类似的问题 但答案包含了我不确定如何翻译的语法或库魔法 考虑这个数据 0 1 0 1 2
  • 了解 fork()、sleep() 和进程通量

    一直在练习这些系统调用 但我坚持使用这段代码 include
  • 如何找到活跃的短信?

    有什么方法可以知道免费 活跃短信的数量吗 或者至少读取每个SM的电压 功率或温度值 通过它我可以知道它是否工作 在 GPU 设备上执行某些作业时实时执行 smid 帮助我了解了每个 SM 的 Id 类似的东西会有所帮助 感谢致敬 拉凯什 C
  • 由于 cloudflare 无法从 url 读取数据

    每当我编译时 我都会得到这个 线程 main 中的异常 java io IOException 服务器返回 HTTP 响应代码 403 对于 URL 链接 sun net www protocol http HttpURLConnectio
  • 使用相同的模型填充多个组合框,但选择差异

    有问题ComboBox 我已经填充了多个ComboBoxes 具有相同的模型 但是当我运行程序并从一个组合框中选择一个值时 它会为其余的组合选择相同的值 ComboHBoy setModel defaultComboBoxModel Com
  • 将 IsEnabled 属性绑定到 WPF 中的布尔值

    我有一个TextBox需要以编程方式启用 禁用 我想使用绑定来实现这一点Boolean 这里是TextBox XAML
  • 创建 SVG 使用

    当我在 HTML 中添加此 SVG 时 它会显示 当我尝试使用 JS 构建它时 它不显示 他们的代码看起来相同 显然我忽略了一些东西 在 HTML 作品中 div div
  • ASP.NET 原因: 在应用程序之外使用注册为allowDefinition='MachineToApplication' 的节是错误的...?

    我有一个 ASP NET 网站 我在 VS 2008 中不断收到以下错误 该网站在浏览器中工作正常 我已使用 IIS 管理器将每个文件夹制作为 ASP NET 应用程序 为什么它总是抱怨 该站点的文件夹位于父文件夹下方 我不熟悉网站应用程序
  • Django - 将 InMemoryUploadedFile 发布到外部 REST api

    在 Django Rest Framework 中 我想发布一个文件 该文件作为InMemoryUploadedFile 一旦收到就发送到不同的服务器 听起来很简单 但是request post 函数似乎无法正确发送这样的文件 def po
  • 如何在 PHP 中将视频转换过程“分叉”到后台?

    我有一个批量 Flash 上传脚本 可将视频文件上传到目录 简单的 上传完成后 它会为该文件创建一条 mysql 记录 然后继续处理队列中的下一个文件 就在执行此操作之前 我希望它调用一个后台进程 将上传的 avi avi 文件转换为 ip
  • 如何找到正确的 UUID?

    大约一周前 我收到了某人的帮助 但我的代码似乎仍然存在问题 我运行的是 Android 2 0 因此无法使用这些方法来获取 UI 而是需要反射性地调用这些方法 下面是我的代码 public ConnectThread BluetoothDe
  • 用 R 中相邻单元格的值填充 NA

    这个问题可能听起来与该论坛上的各种其他问题类似 在将其标记为重复之前 请确保重复的问题在我的情况下有效 我有一个数据框 df1 如下 gt df1 lt data frame c1 c ER017 ER017 ER017 ER017 ER0
  • JSlint 错误“不要在循环内创建函数。”引发关于 Javascript 本身的问题

    我有一些在循环中调用匿名函数的代码 类似于这个伪示例 for i 0 i lt numCards i i 1 card div bind isPopulated function ev var card ev currentTarget J
  • 并行执行 Web 服务调用

    我看到了这些问题在 ASP NET 中并行执行 NET HttpWebRequest 的建议 and Async Parallel 或 Array Parallel Map从大约一年前开始 想知道他们的建议是否仍然有效 或者现在是否有更好的
  • 无法使用cuda进入__global__函数

    我在Nsight上写了一段代码 可以编译并执行 但第一次启动无法完成 奇怪的是 当我在调试模式下运行它时 它工作正常 但速度太慢 这是进入访问 GPU 的函数之前的代码部分 我认为存在错误 但找不到 void parallelAction
  • 如何在 Gmail 邮件到达时对其进行编辑?

    最终我的目标是通过带有唯一链接的自动加载图像来防止电子邮件跟踪 我知道Google 使用代理来加载图像所以至少他们不会透露我的 IP 地址 但有些个人和组织会烦人地将跟踪器嵌入到他们的电子邮件中 并且他们会主动检查我是否阅读了他们的电子邮件
  • 如何在 BuzzBrowser post 调用中将文件数据作为 post 参数发送

    我在用嗡嗡浏览器用于呼叫POST方法 我正在从客户那里收到一份文件end point fileObj requestObject gt files gt get image data 这是对的fileObject 我已经使用验证了这一点is
  • 如何不允许特殊字符,但在正则表达式中允许空格?

    当用户在 datagridview 中输入特殊字符时 我需要填充错误消息 截至目前我有以下内容 if Regex IsMatch columnValue ToString A Za z0 9 MessageBox Show You may