我正在尝试使用正则表达式更改电话号码格式。以下示例显示了原始格式是什么以及应如何更改它:(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
添加回答
举报
0/150
提交
取消