在PHP中用*表示正则表达式

时间:2011-08-29 12:58:27

标签: php regex

我想使用一个基本的正则表达式来检查一个字符串是否只包含数字和字母字符,所以我试过

preg_match('[a-zA-Z0-9]*', $address)

遗憾的是,它返回错误:

警告: preg_match()[ function.preg-match ]: /bla/bla.php 上的未知修饰符'*' XX

这是一个简单的正则表达式。我在哪里弄错了?

5 个答案:

答案 0 :(得分:7)

模式应该以模式分隔符开始和结束。可以在分隔符后添加不同的preg选项,例如不区分大小写的搜索。通常斜杠(/)用于分隔符,但可以是任何符号(分隔符应该在模式中转义):

preg_match('/[a-z0-9]*/i', $address);

这将检查字符串中是否包含数字或字符。

如果您想确保它只有 个数字和字符,请使用:

preg_match('/^[a-z0-9]*$/i', $address);

答案 1 :(得分:5)

您可以改为使用ctype_alnum

答案 2 :(得分:1)

我用它来查找来自不同语言的所有可能的字母字符:

preg_match('/^[\p{L}\p{M}0-9]+$/i', $address);

但如果只是英语那么:

preg_match('/^[a-z0-9]+$/i', $address);

答案 3 :(得分:0)

使用

preg_match('/^[a-zA-Z0-9]*$/', $address)

答案 4 :(得分:0)

你忘记了正则表达式的斜杠:

preg_match('/[a-zA-Z0-9]*/', $address)

http://www.ideone.com/G2TA3