I have a cell phone number: ' 13141078884 13161143334 13263362224 18511925554 18612623450 13141102288 13161146662 13263370884 18513608884 18612625555 13141108580 13161146667 13263389994 13264459992 18600004038 18612932226 ', match the next four digits at least one is 8 mobile phone number, how to write it?
Don't be too poor to lift. such as (8\d{3}|\d8\d\d|\d\d8\d|\d{3}8\d).
0 Wide assertion can write?
PHP Code:
$str = '13141078884 13161143334 13263362224 18511925554 18612623450 13141102288 13161146662 13263370884 18513608884 18612625555 13141108580 13161146667 13263389994 13264459992 18600004038 18612932226';// 匹配手机号后四位至少有一个是8preg_match_all('/????????/', $str, $res);var_dump($res);
Reply content:
I have a cell phone number: ' 13141078884 13161143334 13263362224 18511925554 18612623450 13141102288 13161146662 13263370884 18513608884 18612625555 13141108580 13161146667 13263389994 13264459992 18600004038 18612932226 ', match the next four digits at least one is 8 mobile phone number, how to write it?
Don't be too poor to lift. such as (8\d{3}|\d8\d\d|\d\d8\d|\d{3}8\d).
0 Wide assertion can write?
PHP Code:
$str = '13141078884 13161143334 13263362224 18511925554 18612623450 13141102288 13161146662 13263370884 18513608884 18612625555 13141108580 13161146667 13263389994 13264459992 18600004038 18612932226';// 匹配手机号后四位至少有一个是8preg_match_all('/????????/', $str, $res);var_dump($res);
(?=(.?){3}8)(\d{4})(?=\d*8)(\d{4})(?![^8]{4})(\d{4}) // 受@chouchang折叠答案的启发
PHP tests can match
$str = '13141078884 13161143334 13263362224 18511925554 18612623450 13141102288 13161146662 13263370884 18513608884 18612625555 13141108580 13161146667 13263389994 13264459992 18600004038 18612932226';// 匹配手机号后四位至少有一个是8preg_match_all('/\d{7}(?=(.?){3}8)(\d{4})/', $str, $res);var_dump($res);
/8(?:\d{0,3})$/
Guaranteed 11 Digits:
/^(?=\d{11})(?=\d*8\d{0,3}).*$///还是没有办法,期待其他人能想出来
I think so much, I should write:
/^(?=\d*8\d{0,3})\d{11}$/
/[^8]{4}$/