php - 简单的正则表达式来匹配某些字符并排除其他字符
问题描述
我需要一个用于 preg_match 的正则表达式来接受除l
, L
, v
, V
, 0
,之外的所有字母数字字符2
。
我试过了
^[a-zA-Z0-9][^lLvV02]*$
除了 lLvV02 之外它工作得很好,但它也接受其他字符,如 SPACE、ù、@、# 等...
我应该如何改变它?
解决方案
您可以使用
^(?:(?![lLvV02])[a-zA-Z0-9])*$
细节
^
- 字符串的开始(?:
- 非捕获组的开始(?![lLvV02])[a-zA-Z0-9]
- 一个 alnum 字符,它不是位于负前瞻内的字符类中的字符之一
)*
- 非捕获组结束,0 次或多次重复$
- 字符串结束
请参阅Reglex 图:
推荐阅读
- c# - 绑定在 ViewModel 命令方法 MVVM 中不起作用
- xcopy - XCOPY 不覆盖文件
- javascript - 日期选择器未填充日期
- ssl-certificate - 无法连接到 Citrix Receiver(ICA 客户端 13.10.x)中的“0.0.0.2 - 已发布的应用程序名称”
- android - 从服务器检索数据太慢
- node.js - 同一项目中 NodeJS 和前端应用程序的单独 TypeScript 配置
- php - 在同名中使用多个 Where
- jquery - Jquery用自定义ID名称多次附加?有人可以向我发送正确的方向吗
- push-notification - Firebase 通知无法使用 FCM 服务正常工作
- mysql - MySQL 的地理分散/复制 Azure 数据库