2015-01-08 38 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)