Java RegEx反向引用无效

时间:2015-01-20 08:06:50

标签: java regex

在java中,我尝试用 .JPG 替换 .JPG.json 部分,保存字母大小写(有时可能是.jpg.json)

我的代码:

String Path="MyImage.JPG.json";
Result=Path.replaceFirst("/(.jpg)\\.json/i","$1");

但它返回: 的 MyImage.JPG.json

而不是: 的 MyImage.JPG

2 个答案:

答案 0 :(得分:1)

您需要删除/斜杠。在java中,您不需要包含/作为正则表达式分隔符。而且你必须要逃避点。要进行不区分大小写的匹配,请在第一个添加(?i)修饰符。

Path.replaceFirst("(?i)(\\.jpg)\\.json", "$1");

OR

你也可以使用lookbehind断言。

Path.replaceFirst("(?i)(?<=\\.jpg)\\.json", "");

(?<=\\.jpg)断言要匹配的字符串必须以.jpg开头。如果是,则仅匹配以下.json字符串。用空字符串替换匹配的.json字符串将为您提供所需的输出。

答案 1 :(得分:0)

尝试此命令。它应该适合你:

Path.replaceFirst("(?i)(\\.jpg)\\.json","$1")