2015-11-03 200 views
1

我需要看看輸入是否包含蒸汽ID。我試圖看看我的preg_match是否有效。PHP的正則表達式不匹配

$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

有什麼不對?爲什麼它總是給我一個「錯誤」?

+2

[It works](http://ideone.com/uPoQjy),但取決於PHP版本,您可能需要添加'$ matches'。嘗試使用'if(preg_match($ regex,'STEAM_0:1:38401525',$ matches))''。請參閱http://ideone.com/k492KV –

+0

'$ regex =「/^STEAM_0:[01]:[0-9] {7,8} $ /」; preg_match($ regex,'STEAM_1:1:38399475',$ matches);如果($匹配) {echo'OK'; } else {echo'ERROR';}' 它仍然是錯誤 – pusty

+0

嘗試使用它,因爲在我的第二個演示。或者檢查你在這裏和你的系統上是否有相同的值。 –

回答

0

您的代碼是好的我正在測試PHP版本5.2 here並給我行,檢查你的php編譯器或maiby你的代碼。

我不能從那裏救我的代碼,但添加你的問題的代碼驗證:

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

鏈接是空的測試器。請將您的代碼發佈在您的答案中,如果您想包含鏈接,請確保它是有效的。 – lintmouse

+0

從你的問題'$ regex =「/^STEAM_0:[01]:[0-9] {7,8} $ /」; if(preg_match($ regex,'STEAM_0:1:38401525')) } else {echo'ERROR';}'=>'確定' – Laurentiu

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其中代碼是在動作

hereregexr在你的行動。