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