-- 创建测试表 CREATE TABLE test_tbl(id INT, phone_num VARCHAR(20)); -- 插入数据 INSERT INTO test_tbl(id, phone_num) VALUES(1, '13812345678'); INSERT INTO test_tbl(id, phone_num) VALUES(2, '18998765432'); -- 查看数据 SELECT * FROM test_tbl;
以上代码创建了一个测试表,其中包含两个字段:id和phone_num。其中,phone_num表示手机号码。现在大家需要将手机号码中的中间4位替换为“****”。
-- 使用正则表达式替换手机号码中的中间4位为“****” UPDATE test_tbl SET phone_num = REGEXP_REPLACE(phone_num, '(\\d{3})\\d{4}(\\d{4})', '$1****$2'); -- 查看替换后的数据 SELECT * FROM test_tbl;
以上代码使用了MySQL内置函数REGEXP_REPLACE函数,该函数可以根据正则表达式替换字符串中符合要求的字符。在本例中,大家使用正则表达式“(\\d{3})\\d{4}(\\d{4})”表示匹配形如“13812345678”这样的手机号码,然后使用“$1****$2”将符合条件的字符替换为“138****5678”。其中,$1表示正则表达式中第一个括号内的内容,$2表示正则表达式中第二个括号内的内容。
下面是完整的示例代码:
-- 创建测试表 CREATE TABLE test_tbl(id INT, phone_num VARCHAR(20)); -- 插入数据 INSERT INTO test_tbl(id, phone_num) VALUES(1, '13812345678'); INSERT INTO test_tbl(id, phone_num) VALUES(2, '18998765432'); -- 查看数据 SELECT * FROM test_tbl; -- 使用正则表达式替换手机号码中的中间4位为“****” UPDATE test_tbl SET phone_num = REGEXP_REPLACE(phone_num, '(\\d{3})\\d{4}(\\d{4})', '$1****$2'); -- 查看替换后的数据 SELECT * FROM test_tbl;
以上就是使用MySQL正则表达式替换手机号的方法,希望对大家有所帮助。