我想从应该代表电话号码的字符串中删除所有无效字母。只允许使用“+”前缀和数字。我在 Kotlin 中尝试过
"+1234abc567+".replace("[^+0-9]".toRegex(), "")
Run Code Online (Sandbox Code Playgroud)
它几乎完美运行,但它不会替换最后一个“+”。如何修改正则表达式以只允许第一个“+”?
您可以对以下模式进行正则表达式替换:
(?<=.)\+|[^0-9+]+
Run Code Online (Sandbox Code Playgroud)
示例脚本:
String input = "+1234abc567+";
String output = input.replaceAll("(?<=.)\\+|[^0-9+]+", "");
System.out.println(input); // +1234abc567+
System.out.println(output); // +1234567
Run Code Online (Sandbox Code Playgroud)
以下是正则表达式模式的解释:
(?<=.)\+ match a literal + which is NOT first (i.e. preceded by >= 1 character)
| OR
[^0-9+]+ match one or more non digit characters, excluding +
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |