2017-03-02 10 views
-2

文字列の値と動的英数字を持つファイルがあるとします。 文字列をヌル文字に置き換える必要があります。正規表現を使用して文字列を動的英数字に置き換えます

文字列:

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

ここpreso常に一定と他の英数字(ダイナミック値)を変更し続けますされます。文字列
のための正規表現式を記述する方法

私の正規表現は次のとおりです。

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

}

。?

出力I wante dは:Hello_/cfslideshow.js

+0

何を出力しますか? –

+0

こんにちはAkash、 文字列preso1DA7B5FB-01B4-8AB8-B8B2-93B7118ED92Bをファイル内で検索し、空白スペースで置き換えます。 例: マイダイナミックはpreso1DA7B5FB-01B4-8AB8-B8B2-93B7118ED92Bで、マイダイナミックIDはで置き換えられます。 – MK28

+0

@ MK28質問にお答えください。 – shmosel

答えて

0

正のlookbehindを使用する必要があります。私はあなたが与えられた文字列でダ​​イナミックalphanumberic文字を取得したいと仮定しています:

すなわち
(?<=preso).* 

正の後読みがあるゼロの長さアサーションそうではありませんが、それが一致するものをキャプチャし、後読みの後にある値をキャプチャしそうであるように

preso.*(?=/) 
:式

あなたの更新のポストを見て、あなたはあなたの正規表現は、このようにする必要があり、presoと一緒にすべての文字をキャプチャし、そうすべきです

+0

@downvoter:コメントしますか? –

+0

こんにちはAkash、 まだ私が望むものを与えていません。 文字列str = "Hello_preso1D88B7B3-FE77-7A3D-9758-C3820B6D83FB/slideshow.js"; Ouput:Hello_/slideshow.js – MK28

+0

最後に/slideshow.jのような形式が常にありますか? –

関連する問題