2015-01-08 35 views
1

這裏ASCII的問題:正則表達式與六及八

if (preg_match_all("/[\x2F]/", $line, $match)) { 
    print "Correct"; 
} else { 
    print "error"; 
} 

在ASCII表x2F/

當我運行的代碼,它不能檢測/,但我當插入其他十六進制代碼,例如x2A,它的工作原理。只需/\不起作用。

我也試過使用八進制格式。它仍然是一樣的,只是沒有解決/\

任何解決方案來解決這個問題?

這樣做的主要思想是,我正在做一個基於Web的C++編譯器程序,只要學生在cin中鍵入,然後它會跳出提示框讓用戶鍵入他們的值,但如果學生使用//cin鍵入代碼,我的程序仍然會跳轉提示框,我希望它使用RegEx來檢測,如果檢測到//那麼它不會運行代碼的特定行。

預先感謝您。

回答

2

當使用雙引號您正則表達式使用\\

preg_match_all("/[\\x2F]/", $line) 

你甚至都不需要字符類:

preg_match_all("/\\x2F/", $line) 

,或者使用單引號:

preg_match_all('/\x2F/', $line)