首页 > 解决方案 > 正则表达式验证字符串是否不包含特殊字符列表和允许的特殊字符后跟字母数字

问题描述

我正在尝试验证字符串

  1. 根本不允许这些字符:!@#$​​%^&*| \ [ ] { } ? > < ” ' ; :
  2. 仅当还存在常规字符时才允许以下内容: . , + = _ -

这是我到目前为止尝试过的,但它没有验证第二个条件,即如果字符串中也存在字母数字字符,则验证允许的字符

([^\!\@\#\$%\^&\*\|\\[\]\{\}\?\>\<”\’\;\:]|([\.\,\+\=\_\-A-Za-z0-9]))

测试 - https://regex101.com/r/u6osVm/2

标签: asp.netregex

解决方案


您可以使用

^(?=.*[A-Za-z0-9])[A-Za-z0-9.,+=_-]+$

查看正则表达式演示

细节

  • ^- 字符串的开始
  • (?=.*[A-Za-z0-9])- 除换行符之外的任何 0+ 字符后必须有一个 ASCII 字母数字字符
  • [A-Za-z0-9.,+=_-]+- 1+ ASCII 字母、数字、, ., ,, +, =,字符_-
  • $- 字符串结束。

推荐阅读