首页 > 解决方案 > 简单的正则表达式来匹配某些字符并排除其他字符

问题描述

我需要一个用于 preg_match 的正则表达式来接受除l, L, v, V, 0,之外的所有字母数字字符2

我试过了

^[a-zA-Z0-9][^lLvV02]*$

除了 lLvV02 之外它工作得很好,但它也接受其他字符,如 SPACE、ù、@、# 等...

我应该如何改变它?

标签: phpregexcharacter

解决方案


您可以使用

^(?:(?![lLvV02])[a-zA-Z0-9])*$

细节

  • ^- 字符串的开始
  • (?:- 非捕获组的开始
    • (?![lLvV02])[a-zA-Z0-9]- 一个 alnum 字符,它不是位于负前瞻内的字符类中的字符之一
  • )*- 非捕获组结束,0 次或多次重复
  • $- 字符串结束

请参阅Reglex 图

在此处输入图像描述


推荐阅读