gpt4 book ai didi

java - 如何使用正则表达式替换字符?

转载 作者:行者123 更新时间:2023-11-30 02:53:42 25 4
gpt4 key购买 nike

如何使用正则表达式替换字符“-”?

我的 json 字符串中有一些日期或日期时间字段,它们都使用字符“/”作为分隔符,例如 '2016/10/10 10:10:10'
现在我需要具有此表单的日期或日期时间字段'2016-10-10 10:10:10'

例如:

{
"code": "200",
"error": "",
"total": "10",
"page": "1",
"result": [
{
"CustomerNo": "0432215",
"Name": "ACE-Dick/USA",
"LastUpdatedDate": "2015/08/07 13:25:32",
"LastUpdatedBy": "System"
}
]
}

下面的文本是我想要的正确的 json。

{
"code": "200",
"error": "",
"total": "10",
"page": "1",
"result": [
{
"CustomerNo": "0432215",
"Name": "ACE-Dick/USA",
"LastUpdatedDate": "2015-08-07 13:25:32",
"LastUpdatedBy": "System"
}
]
}

我可以使用正则表达式找到日期字符串,如下所示,但如何替换它?

\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}

最佳答案

在您需要保留的值周围使用捕获组,并仅匹配您需要替换的内容:

(\d{4})/(\d{2})/(\d{2} \d{2}:\d{2}:\d{2})
^ -1- ^ ^ -2- ^ ^ --------- 3---------- ^

并替换为 $1-$2-$3,其中 $1 是对通过组 1 捕获的值的反向引用,$2 引用组 2 值等

请参阅regex demo

Java demo :

String s = "2016/10/10 10:10:10"; 
String rx = "(\\d{4})/(\\d{2})/(\\d{2} \\d{2}:\\d{2}:\\d{2})";
System.out.println(s.replaceAll(rx, "$1-$2-$3"));

查看更多关于 capturing groups and backreferences here .

关于java - 如何使用正则表达式替换字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37874941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com