PHP正则表达不匹配

时间:2015-11-03 18:48:59

标签: php regex steam

我需要查看输入是否包含steam id。我试着看看我的preg_match是否有效。

$regex = "/^STEAM_0:[01]:[0-9]{7,8}$/";
if(preg_match($regex, 'STEAM_0:1:38401525'))
{ 
echo 'OK'; } else {echo 'ERROR';}

我在在线工具中尝试过它 https://regex101.com/r/nI0kQ7/1

出了什么问题?为什么它总是给我一个" ERROR" ?

2 个答案:

答案 0 :(得分:1)

我已经测试了您的代码并且工作正常,这里是代码段

$regex = "/^STEAM_0:[01]:[0-9]{7,8}$/";
if(preg_match($regex, 'STEAM_0:1:38401525', $match))
{ 
    echo 'OK'.PHP_EOL; 
    print_r($match); 
} else {
    echo 'ERROR';
}

这会产生类似

的输出
OK
Array
(
    [0] => STEAM_0:1:38401525
)

查看代码正在运行的Demo

here 正则表达式正在为您服务。

答案 1 :(得分:0)

你的代码很好我在php版本5.2 here上进行了测试并且给我确定,检查你的php编译器或者你熟悉的代码。

我无法从那里保存我的代码,但添加了您的问题代码以进行验证:

$regex = "/^STEAM_0:[01]:[0-9]{7,8}$/";
if(preg_match($regex, 'STEAM_0:1:38401525'))
{ 
echo 'OK'; } else {echo 'ERROR';}