我很难理解这一点,有人可以解释一下吗?
我非常担心在我的网站上清理数据并且我想加倍努力并剥离那些不应该存在的东西。这是一个例子我最终处理了很多十六进制值,这些值只包含连字符,数字和字母A到F这样的字符串
7d43637d-780c-4703-8467-13525d590
我将如何编写一个可以检查的preg_match / replace 8个字符'0-9''A-F''a-f',连字符,4个字符,连字符,4个字符,连字符,4个字符,连字符,9个字符?
它会有点像这样吗?
pre_replace("/([0-9a-fA-F]{8})\/([-])\/([0-9a-fA-F]{4})\/([-])\/([0-9a-fA-F]{4})\/([-])\/([0-9a-fA-F]{4})\/([-])\/([0-9a-fA-F]{9})\", "", $string);
对不起它太长而且令人困惑,我绝对愿意接受其他想法来实现这个目标。
我还需要一个可以检查'A-Z''a-z''0-9'' - ''_'和32个字符
我真的希望有一个在线生成器,也许如果我能理解它是如何完成的,我会为其他可怜的灵魂建立一个。
修改
使用AbraCadaver的代码我能够使用
使其工作if(!preg_match("/[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{9}/i", $string)){
echo 'error';
} else {
//continue code
}
答案 0 :(得分:4)
你很近但有很多需要。此外,i
使其不区分大小写(A或a):
"/[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{9}/i"
if(!preg_match("/[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{9}/i", $string)) {
echo "Invalid string";
}