Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-Regex字符串替换_Java_Regex - Fatal编程技术网

Java-Regex字符串替换

Java-Regex字符串替换,java,regex,Java,Regex,我想用正则表达式替换字符串的某些部分。这是我要替换的字符串的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替换字符串的一部分时,我遇到了一个错误

我想用正则表达式替换字符串的某些部分。这是我要替换的字符串的
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
时,这需要被替换掉
一切正常。所以我猜我想用来替换原始字符串(met)的部分的字符串有问题

我收到的错误是
非法组引用

有人知道
${.now?string(\'ddHHmm\”)Z有什么问题吗?

您需要使用:

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

  • 也应该转义吗?是的,转义
    $
    就可以了。@marounnaroun:DOT在替换中没有特殊意义,但是
    $
    确实有。转义$就可以了!谢谢