gpt4 book ai didi

Java - 正则表达式字符串替换

转载 作者:行者123 更新时间:2023-11-29 05:14:49 24 4
gpt4 key购买 nike

我想用正则表达式替换字符串的某些部分。这是我要替换的字符串的 192001Z 部分。

代码:

String met = "192001Z 17006KT 150V210 CAVOK 11/07 Q1004 NOSIG";
String regexZ = "[0-9].{5}Z";
met = met.replaceAll(regexZ, "${.now?string(\"ddHHmm\")}Z");

当我想用 ${.now?string(\"ddHHmm\")}Z 替换字符串的一部分时出现错误。

但是当我例如将 ${.now?string(\"ddHHmm\")}Z 替换为 ThisNeedsToBeReplaced 一切正常。所以我的猜测是我想用来替换部分原始字符串 (met) 的字符串有问题。

我收到的错误是Illegal group reference

有没有人知道 ${.now?string(\"ddHHmm\")}Z 有什么问题?

最佳答案

你需要使用:

met = met.replaceAll("\\b\\d{6}Z\\b", "\\${.now?string(\"ddHHmm\")}Z");
  • 正确匹配 192001Z 的正则表达式是 \b\d{6}Z\b
  • 您还需要在替换中转义 $ ,否则它会被视为反向引用,例如$1, $2 等。

关于Java - 正则表达式字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26970292/

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