有人可以解释他们使用它们的含义吗?
if(m/DROP TABLE IF EXISTS \`?$tableName\`?/ || m/CREATE TABLE \`?$tableName\`?/){
$inside=1
};
-Thanks
答案 0 :(得分:4)
?
使得前面的字符可选,在这种情况下是`。在高级别,这意味着该代码的作者允许$ tablename 或`$ tablename`。
请注意,所述的正则表达式也匹配`$ tablename和$ tablename`,但这种情况可能不太可能。可以使用backreferences修改它以排除此类情况:
m/DROP TABLE IF EXISTS (\`?)$tableName\1 || m/CREATE TABLE (\`?)$tableName\2/
可以在here找到关于此运算符的进一步阅读。