*strong text*I have a bunch of lines in a textfile and I want to match this ${ALPANUMERIC characters}
and replace it with ${SAME ALPHANUMERIC characters plus _SOMETEXT(CONSTANT)}
.
I've tried this expression ${(.+)}
but it didn't work and I also don't know how to do the replace regex in java.
thank you for your feedback
Here is some of my code :
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
Pattern p = Pattern.compile("\\$\\{.+\\}");
Matcher m = p.matcher(line); // get a matcher object
if(m.find()) {
System.out.println("MATCH: "+m.group());
//TODO
//REPLACE STRING
//THEN APPEND String Builder
}
}
OK this above works but it only founds my variable and not the whole line for ex here is my input :
some text before ${VARIABLE_NAME}
some text after
some text before ${VARIABLE_NAME2}
some text after
some text before some text without variable some text after
... etc
so I just want to replace the ${VARIABLE_NAME}
or ${VARIABLE_NAME}
with ${VARIABLE_NAME2_SOMETHING}
but leave preceding and following text line as it is
EDIT:
I though I though of a way like this :
if(line.contains("\\${([a-zA-Z0-9 ]+)}")){
System.out.println(line);
}
if(line.contains("\\$\\{.+\\}")){
System.out.println(line);
}
My idea was to capture the line containing this, then replace , but the regex is not ok, it works with pattern/matcher combination though.
EDIT II
I feel like I'm getting closer to the solution here, here is what I've come up with so far :
if(line.contains("$")){
System.out.println(line.replaceAll("\\$\\{.+\\}", "$1" +"_SUFFIX"));
}
What I meant by $1
is the string you just matched replace it with itself + _SUFFIX