如何编写正则匹配含字母、数字及指定3种特殊字符的数据库记录
正确正则写法及原写法问题说明
原写法存在的问题
- 仅定义了单个合法字符的匹配规则,没有添加锚定符和量词,无法校验整串所有字符都符合要求
- 字符组内混入了不需要的括号、多余的转义符,还额外加入了你未要求允许的横杠
-字符
正确正则
要匹配**整串仅包含大小写字母、数字、/、"、,**的记录,使用如下正则即可:^[0-9a-zA-Z/",]+$
规则说明
^锚定字符串开始位置,避免字符串开头带非法字符也能匹配- 字符组
[]内列出所有允许的字符,你指定的3个特殊字符在字符组内无需额外转义,如果你使用的查询语言要求双引号转义,可将"替换为\" +表示匹配长度至少为1的合法字符串,如果你允许空值,可将+替换为*$锚定字符串结束位置,避免字符串末尾带非法字符也能匹配
匹配示例
- 合法可匹配:
a1b2/",、"test,data/2024" - 非法不匹配:
abc!123(含非法字符!)、test-456(含未允许的横杠-)
内容的提问来源于stack exchange,提问作者AndrzejK
相关产品推荐
相关产品推荐

