我想知道正则表达式中tilde运算符的含义是什么.
我有这样的声明:
if (!preg_match('~^\d{10}$~', $_POST['isbn'])) {
    $warnings[] = 'ISBN should be 10 digits';
}
我发现这个文件解释了代字号的含义: ~
它说这=~是一个perl运算符,意味着对这个正则表达式运行这个变量.
但为什么我的正则表达式包含两个波浪号运算符?
Mez*_*Mez 59
在这种情况下,它只是用作分隔符.
通常,在PHP中,正则表达式的第一个和最后一个字符是"分隔符",用于标记匹配部分的开始和结束位置(如果您想在末尾添加修饰符,如ungreedy等)
通常,PHP从字符串中的第一个字符开始,这个字符串用作正则表达式,将第二个字符作为第二个分隔符进行匹配.这在文本中出现正常分隔符时很有用(例如,文本中出现的分隔符/) - 这意味着您不必做笨拙的事情.
匹配" //"并将分隔符设置为" /"
/\/\//
匹配的" //"用分隔符" #"
#//#
在这种情况下,它没有任何意义.它只是界定模式的开始和结束.在PCRE(Perl兼容正则表达式)中,这是你在PHP中使用preg_*的方法,模式是在表达式选项的旁边输入的,如下所示:
preg_match("/pattern/opt", ...);
但是,在这种情况下使用"/"作为分隔符是任意的 - 尽管正斜杠很受欢迎,但它可以替换为任何东西.在你的情况下,它是波浪形的.