十六进制和八进制的 ASCII 正则表达式

RegEx in ASCII with hexa and octal

这是问题所在:

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

x2F 在 ASCII table 中是 /

当我运行代码时,它无法检测到/,但是当我插入其他十六进制代码时,例如x2A,它可以工作。只是 /\ 不起作用。

我也试过使用八进制形式。它仍然是一样的,只是没有解决 /\.

有解决办法吗?

这个的主要思想是,我在做一个基于web的c++编译程序,每当学生输入cin时,它就会跳出一个提示框让用户输入他们的值,但是如果学生用//cin输入代码,我的程序仍然会跳出提示框,我希望它使用RegEx检测,如果检测到//则不会运行代码的特定行。

提前致谢。

在正则表达式中使用双引号时使用 \

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

你甚至不需要角色 class:

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

或使用单引号:

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