使用正则表达式将字符串替换为动态字母数字字符

replace the string with dynamic alphanumeric characters using regex

假设我有一个文件,其中包含一个字符串值和动态字母数字字符。 所以我需要用空字符替换字符串。

字符串:

preso1DA7B5FB-01B4-8AB8-B8B2-93B7118ED92B

这里preso永远不变,其他字母数字字符会不断变化(动态值)。

如何为字符串编写正则表达式
我的正则表达式是:

preso.*?\n

public class PatternSearchAndReplace {

public String replaceWithPattern(String str,String replace){

    Pattern ptn = Pattern.compile("(?<=preso).*");
    Matcher mtch = ptn.matcher(str);
    return mtch.replaceAll(replace);
}

public static void main(String a[]){
    String str = "Hello_preso1D88B7B3-FE77-7A3D-9758-C3820B6D83FB/cfslideshow.js";
    PatternSearchAndReplace mpr = new PatternSearchAndReplace();
    System.out.println(mpr.replaceWithPattern(str, " "));
}

}

我想要的输出是:Hello_/cfslideshow.js

您应该使用正向回顾。我假设您想在给定字符串中获取动态字母数字字符:

(?<=preso).*

正向后视是零长度断言,因为它不捕获它匹配的内容并捕获后视表达式

之后的值

查看更新后的 post,您应该捕获所有字符以及 preso,因此,您的正则表达式应该是这样的:

preso.*(?=/)