为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式更改电话号码的形式

正则表达式更改电话号码的形式

至尊宝的传说 2024-01-05 10:49:48
我正在尝试使用正则表达式更改电话号码格式。以下示例显示了原始格式是什么以及应如何更改它:(216) 765 8765 ---> 电话: 216-7658765我尝试使用以下代码:data = data.replaceAll("([0-9]{3})|([\\s\\./0-9])*$","$1"+"-"+"$2");但这并不能解决问题。
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

你的正则表达式是错误的:)你应该得到一些关于错误转义序列的编译错误。

首先是你的错误:

  • 您对 (216) 的第一个匹配在技术上是正确的,但为了使 () 删除,您还需要在其中进行匹配:\(([0-9]{3})\)

  • 你的第二场比赛有点搞砸了:)首先,如果你要在字符串中使用 \s,大多数语言会认为你想转义“s”。所以大多数时候你需要转义 \ 本身。所以\s

  • 我不知道管子是什么| 是为了,但你可以把它变成一个空间。

工作示例:

data.replaceAll("\\(([0-9]{3})\\) ([\\s0-9]+)*$","$1-$2")

https://code.sololearn.com/cVRUy2BwauK8#java


查看完整回答
反对 回复 2024-01-05
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

不要发明轮子,除非你真的想这么做。看看这个库 https://github.com/google/libphonenumber


查看完整回答
反对 回复 2024-01-05
  • 2 回答
  • 0 关注
  • 43 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信