范围内的正则表达式匹配

时间:2013-12-17 04:14:25

标签: php regex

我需要对包含32 - 90的ASCII字符进行正则表达式匹配。

我尝试了以下内容,但它似乎没有返回任何内容。

preg_match("/^[\x20-\x5A]+$/u", $input)

这个想法是从十六进制20到十六进制5a。我从http://www.asciitable.com/

中提取了这些内容

我在http://www.phpliveregex.com/p/2Dh

上有一个测试点

2 个答案:

答案 0 :(得分:3)

您当前的范围仅支持大写字母,因此您需要/i修饰符:

$input = 'adddd ### AAAA????';
preg_match('/^[\x20-\x5A]+$/i', $input); // int(1)

或者,在范围中添加额外的字母:

preg_match('/^[\x20-\x5A\x61-\x7A]+$/', $input))

答案 1 :(得分:-1)

您需要使用preg_match的第三个参数将其分配给变量

preg_match("/^[\x20-\x5A]+$/u", $input, $matches)

standard return of this function是1或0 / FALSE

...例如

if(preg_match("/^[\x20-\x5A]+$/u", $input, $matches))
{
  var_dump($matches);
}