我有一个字符串s = "abc.def..ghi".我想替换单曲'.' 有两个'.'.然而,s.replace(".", "..")收益率"abc..def .... ghi".我怎样才能得到正确的行为?我正在寻找的输出是s = "abc..def..ghi".
仅当点被两个字符包围时才替换点
String foo = s.replaceAll("(\\w)\\.(\\w)", "$1..$2");
Run Code Online (Sandbox Code Playgroud)
或者@Thilo评论说,只有它被两个非点包围
String foo = s.replaceAll("([^.])\\.([^.])", "$1..$2");
Run Code Online (Sandbox Code Playgroud)
即使点位于字符串的开头/结尾,用两个点替换单点,使用负向前瞻和后观:(示例字符串:.abc.def..ghi.将成为..abc..def..ghi..)
String foo = s.replaceAll("(?<!\\.)\\.(?!\\.)", "..");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |