当我们需要提取数据表中的电话号码或者座机号时候,除了用代码逻辑进行处理之外,我们还可以在数据库中用sql语句进行处理,方便又快捷。
telList = "0570-3826047;13004689930;(0570)3826047;0570-3826047;(0570)3888198;11004689930"
REGEXP 正则判断,返回0和1
telList REGEXP '[1][3456789][0-9]{9}'
提取手机号:
SELECT REGEXP_REPLACE('0570-3826047;13004689930;(0570)3826047;0570-3826047;(0570)3888198;11004689930', '(0[0-9]{2,3}\-)([2-9][0-9]{4,7})', '');
SELECT REGEXP_REPLACE('0570-3826047;13004689930;(0570)3826047;(0570)3888198', '\\([0-9]{2,4}\\)?([0-9]{4,7})', '');
2者合并下:
SELECT REGEXP_REPLACE(REGEXP_REPLACE('0570-3826047;13004689930;(0570)3826047;(0570)3888198', '\\([0-9]{2,4}\\)?([0-9]{4,7})', ''),'(0[0-9]{2,3}\-)([2-9][0-9]{4,7})','');
//结果 : ;13004689930;;