正規表現を改善しようとしています。
私はこの文字列を持っています:
String myString =
"stuffIDontWant$KEYWORD$stuffIWant$stuffIWant$KEYWORD$stuffIDontWant";
そして、私が欲しいものだけを差し引くためにこれを作りました:
String regex = "\\$KEYWORD\\$.+\\$.+\\$KEYWORD\\$";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(myString);
if(m.find()){
String result = stuff.substring(m.start(), m.end());
}
目標は、stuffIWant$stuffIWant
それを文字で取得して分割することです$
。そのため、それを改善し、Patter と Matcher を Java ソースにインポートしないようにするために、ルックアラウンドについて読んだので、2 番目のアプローチは次のとおりです。
//Deletes what matches regex
myString.replaceAll(regex, "");
// Does nothing, and i thought it was just the opposite of the above instruction.
myString.replaceAll("(?! "+regex+")", "");
正しい方法は何ですか?私のコンセプトはどこが間違っていますか?