1
我邮编字符串需要像这样除去非5位拉链:正则表达式从字符串
11111 22222 33333 44444 55555等
如果客户提出在11111,22222,33333, 55555或其他任何不是5个数字(数字)后面或前面有1个可选空间,我希望它删除坏的并留下正确的空间
因此,例如,如果有人放入11111 2222A 33333,它应该只需返回11111 33333,或者如果他们输入11111,22222,333333,则应返回11111 22222 33333.如果他们执行11111,22222,33333,我也想让它正常返回,但我知道如何空格替换逗号我觉得这样我就可以检查seperately
我的正则表达式测试到目前为止已经这些:
$data = '11111 2222A 33333';
// Attempt 1
$x = preg_replace('/^([\s]*\d{5})+[\s]*$/','',$data);
// Attempt 2
$y = preg_replace('/[^\s?(?=\d{5})(?=\s?)*]/','',$data);
$x = preg_replace('/!\d{5}\s?/','',$y);
// Attempt 3
$x = preg_replace('/[^\b\d{5}\b\s]/','',$data);
return $x;
我想更换不匹配5位数字的东西由空格开头或前面加上空格(可选,因此它与字符串中的第一个邮编和结尾邮编相匹配),无效,有效地将其删除。
但是到目前为止,它所做的只是删除2222A中的A并离开2222.只有一次尝试不会一次被注释掉。
不知道preg_match_all,非常好,正是我想要的。非常感谢。 – DerekConlon