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

我正在尝试使用正则表达式更改电话号码格式。以下示例显示了原始格式是什么以及应如何更改它:

(216) 765 8765 ---> 电话: 216-7658765

我尝试使用以下代码:

data = data.replaceAll("([0-9]{3})|([\\s\\./0-9])*$","$1"+"-"+"$2");

但这并不能解决问题。


至尊宝的传说
浏览 124回答 2
2回答

胡说叔叔

你的正则表达式是错误的:)你应该得到一些关于错误转义序列的编译错误。首先是你的错误:您对 (216) 的第一个匹配在技术上是正确的,但为了使 () 删除,您还需要在其中进行匹配:\(([0-9]{3})\)你的第二场比赛有点搞砸了:)首先,如果你要在字符串中使用 \s,大多数语言会认为你想转义“s”。所以大多数时候你需要转义 \ 本身。所以\s我不知道管子是什么| 是为了,但你可以把它变成一个空间。工作示例:data.replaceAll("\\(([0-9]{3})\\) ([\\s0-9]+)*$","$1-$2")https://code.sololearn.com/cVRUy2BwauK8#java

紫衣仙女

不要发明轮子,除非你真的想这么做。看看这个库 https://github.com/google/libphonenumber
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java