我想用Regex替换String的某些部分。它是我要替换的字符串的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
有什么问题?
答案 0 :(得分:3)
您需要使用:
met = met.replaceAll("\\b\\d{6}Z\\b", "\\${.now?string(\"ddHHmm\")}Z");
192001Z
匹配的正确正则表达式为\b\d{6}Z\b
$
替换它,否则它被视为后退参考,例如$1, $2
etx。