java - 替换特定模式中的字符或特定字符之后的字符

标签 java regex string

当前的任务是将生日格式中的“-”替换为“/”,例如03-12-89 -> 03/12/89。但是,“-”必须能够出现在字符串的其他位置,例如“我的生日是:03/12/89”。

我尝试创建子字符串,替换生日部分中的“-”,然后再次组合字符串。但是,该解决方案不灵活并且无法通过测试用例。

我想我必须能够使用正则表达式来做到这一点,尽管我似乎无法构造它。所以现在我回到: String newStr = input.replace("-", "/"); 这会删除我不想要的所有“-”实例。

有人可以帮忙吗?

最佳答案

您可以使用以下正则表达式:

(?<=\d{2})-

替换\/(无需在Java中转义)

输入:

My-birthday-is-on-the: 03-12-89

输出:

My-birthday-is-on-the: 03/12/89

demo

代码:

String input = "My-birthday-is-on-the: 03-12-89";
System.out.println(input.replaceAll("(?<=\\d{2})-", "/"));

输出:

My-birthday-is-on-the: 03/12/89

关于java - 替换特定模式中的字符或特定字符之后的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50850422/

相关文章:

java计算字符串中二元组的数量

java - spring-boot-starter-mail 使用后的 "Application failed to start"

正则表达式模式以随机\n或\n\n作为换行符计算诗歌中的行数

javascript - 如何根据数量和名称拆分字符串列表?

c++ - 使用 CTime & asctime 将时间分配给字符串或 vector 字符串

string - 如何快速替换字符串中的特定单词?

java - JSP - Servlet 未正确转发到 JSP

Mac 上针对 Java6 的 JavaFX 构建

c++ - 将 50 位二进制值转换为整数

c# - 试图将这行 Java 理解为 C# 代码