【发布时间】:2020-03-16 18:43:34
【问题描述】:
我只想替换字符串的数字部分。大多数情况下,它要么是完整的 URL,要么是 URL 的一部分,但也可以只是一个普通的字符串。
-
/users/12345变为/users/XXXXX -
/users/234567/summary变为/users/XXXXXX/summary -
/api/v1/summary/5678变为/api/v1/summary/XXXX -
http://example.com/api/v1/summary/5678/single变为http://example.com/api/v1/summary/XXXX/single
请注意,我不会从 /api/v1 替换 1
到目前为止,我只有以下在大多数情况下似乎有效的方法:
input.replaceAll("/[\\d]+$", "/XXXXX").replaceAll("/[\\d]+/", "/XXXXX/");
但这有两个问题:
- 替换大小与原始字符串长度不匹配。
- 替换字符是硬编码的。
有没有更好的方法来做到这一点?
【问题讨论】: