用于检查字符串中字符的正则表达式

时间:2012-03-29 06:24:02

标签: php regex

我有一个使用正则表达式进行验证的文本,

除了字母(i,o,q)之外,允许文本字段包含所有字符a-z和0-9。

我尝试过这样的事情,但无法让它工作'/[^(oOiIqQ)]/'

6 个答案:

答案 0 :(得分:1)

这种排除的一种简单方法是使用否定前瞻。陈述你想要的东西:

/^(?:[a-z0-9])+\z/i

然后排除您不想要的项目:

/^(?:(?![ioq])[a-z0-9])+\z/i

答案 1 :(得分:0)

您不能在[...]中使用括号。

你必须使用'/ [0-9a-hj-npr-zA-HJ-NPR-Z] /'

之类的东西

如果您想确保您的文字只包含这些字符,请使用:

'/^[0-9a-hj-npr-zA-HJ-NPR-Z]+$/'

因此,您可以匹配包含任意数量的字符的字符串,并且只匹配那些字符。

答案 2 :(得分:0)

这可能有效:[a-hj-npr-z]也许您可以在正则表达式的末尾添加标记i,以防不区分大小写。

(您将允许除您指定的字符之外的所有字符)

if (preg_match('#^[0-9a-hj-npr-z]+$#i', $string)) {
   //string OK
}

答案 3 :(得分:0)

也许像这样/^[0-9a-hj-npr-z A-HJ-NPR-X]+$/

答案 4 :(得分:0)

我会假设你的一点点改变,并会尝试:

^[^oOiIqQ]+$

答案 5 :(得分:0)

有一个非常简单的解决方案,它考虑了负面的regexing(这使得正则表达式更短,更具可读性)

[^ioqIOQ]+