2017-03-02 19 views
-2

假设我有一个文件,其中包含一个字符串值以及动态字母数字字符。 所以我需要用空字符替换字符串。使用正则表达式替换带有动态字母数字字符的字符串

字符串:

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

这里Preso已将总是恒定的和其他字母数字字符将继续改变(动态值)。

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

简报已* \ n

公共类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, " ")); 
} 

}

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

+0

你想要输出什么? –

+0

Hi Akash, 在文件中搜索字符串preso1DA7B5FB-01B4-8AB8-B8B2-93B7118ED92B并替换为空格。 例如: 我的动态是preso1DA7B5FB-01B4-8AB8-B8B2-93B7118ED92B并替换为我的动态ID为。 – MK28

+0

@ MK28请回答问题。 – shmosel

回答

0

您应该使用积极lookbehind。我假设你想在给定的字符串,以获得动态alphanumberic字符:

(?<=preso).* 

正回顾后是零长度断言因为它没有抓住它匹配和捕捉值是回顾后后在你更新后的表达

,您应该捕获与简报已沿所有字符,所以,你的正则表达式应该是这样的:

preso.*(?=/) 
+0

@downvoter:关心评论? –

+0

嗨阿卡什, 仍然没有给我想要的。 String str =“Hello_preso1D88B7B3-FE77-7A3D-9758-C3820B6D83FB/slideshow.js”; 输出:Hello_/slideshow.js – MK28

+0

最终会有像/slideshow.j一样的格式吗? –