java - 正则表达式无效

标签 java regex

这是我要从中删除日期值的 json。

      {
        "mCheckInTime": null,
        "mCheckOutTime": null,
        "mLateArrivalTime": "2017-09-14T18:00:00.000+05:00",
        "mNumberOfBeds": 0
      }

这是对应的正则表达式

    String valueRegex = "^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}\\+\\d{2}:\\d{2})$";
    String message = message.replaceAll(valueRegex, "");

当我运行这段代码时,它什么也没做。 有人请帮我解决这个问题,这里有什么问题吗?

最佳答案

您需要从正则表达式中删除 ^(开始)和 $(结束)元字符:

String message = "{\n" +
                "  \"mCheckInTime\": null,\n" +
                "  \"mCheckOutTime\": null,\n" +
                "  \"mLateArrivalTime\": \"2017-09-14T18:00:00.000+05:00\",\n" +
                "  \"mNumberOfBeds\": 0\n" +
                " }";

String regex = "\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}\\+\\d{2}:\\d{2}";

System.out.println(message.replaceAll(regex, ""));

这会产生以下输出:

{
  "mCheckInTime": null,
  "mCheckOutTime": null,
  "mLateArrivalTime": "",
  "mNumberOfBeds": 0
 }

关于java - 正则表达式无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46211818/

相关文章:

java - 使用数组项设置按钮文本

java - Picasso context==null 问题

regex - 如何编写正则表达式 'line' 包含字符串

javascript regex - 用不同的字符串替换给定表达式的每个匹配项

java - 循环错误 - 修复循环意味着破坏其他东西,反之亦然

java - 尝试导出简单接口(interface)时 Unresolved 约束

Java:声明具有两个相关泛型类型的映射 (<T> Map<Class<? extends ClassA<T>>,Class<? extends ClassB<T>>>)

regex - notepad++ 关键字仅在行首时

java - 用于识别构造函数声明的正则表达式

Python - 输入字符串上的正则表达式以格式化文件名中的空格