如何将号码0912345678格式化为0912-345678?已尝试R语言代码
R语言实现手机号格式调整:在第4位后插入短横线
你的代码问题出在正则表达式的写法和替换逻辑上:
- 原正则
....()......没有正确捕获需要保留的前后两部分内容 - 直接替换为
-会把匹配的所有字符都替换成短横线,而非插入符号
正确实现代码
data_phone_new = readLines("data_phone.txt") # 匹配开头4位数字和后续6位数字,用短横线连接 formatted_phones = gsub("(^\\d{4})(\\d{6})$", "\\1-\\2", data_phone_new)
代码解释
(^\\d{4}):捕获字符串开头的4位数字(括号创建捕获组,^确保从开头匹配,\\d{4}匹配4个数字)(\\d{6})$:捕获字符串结尾的6位数字($确保匹配到字符串末尾)\\1-\\2:替换时调用两个捕获组的内容,中间插入短横线-
如果你的手机号长度不固定(比如有11位的情况),可以调整正则中的数字位数,比如11位手机号可以用(^\\d{3})(\\d{8})$来调整格式。
内容的提问来源于stack exchange,提问作者佑喵喵
相关产品推荐
相关产品推荐

