REGEX Problem - Regex auf den gesamten String anwenden?

Hallo,

mein String beinhaltet eckige Klammern. Ich würde gerne per REGEX die Klammern durch spitze Klammern ersetzen.

Meine Jetzige Lösung gibt das folgende Ergebnis aus:
PHP:
[ b ]wort1[ /b ] [ b ]wort3[ /b ] [ i ]wort3[ i ]

Zur Zeit wird nur wort2 ersetzt :/

Ich hoffe, ihr könnt mir weiter helfen.
Bedanke mich im voraus

Java:
	public static void main(String[] args) {

		String str = "[ b ]wort1[ /b ] [ b ]wort3[ /b ] [ i ]wort3[ i ]";
		
		Pattern pBold = Pattern.compile(".*(\\[b\\](.*)\\[/b\\]).*");
		Matcher mBold = pBold.matcher(str);

		if(mBold.matches()) {
			String htmlString = "<b>"+mBold.group(2)+"</b>";
			str = str.replace(mBold.group(1), htmlString);
			System.out.println(str);
		}		
	}
 
Dein Pattern überzeugt mich nicht ganz, und mit split() biste besser dran:

Java:
import java.util.regex.Pattern;


public class Main {

      public static void main(String[] args) {

          String str = "[ b ]wort1[ /b ] [ b ]wort3[ /b ] [ i ]wort3[ i ] [ h1 ]wort4[ /h1 ]";
  
          Pattern pBold = Pattern.compile("\\[|\\]");
          pBold.matcher(str);
          
          String[] singledata = pBold.split(str);  
          
          // set up new string
          String result = "";  
          for(int j = 0; j < singledata.length; j++){
        	  if(!singledata[j].isEmpty()){
        		  result += ("<" + singledata[j] + ">" + singledata[j+1] + "<" + singledata[j+2] + "> ");
        		  j = j + 3;
        	  }
          }
          
          System.out.println(result);
      } 
}

Ich hoffe ich konnte helfen!

Gruss Ben

PS: Wenn sich das Problem erledigt hat bitte in dem Thread hier den "Erledigt"-Button drücken, thx ;)
 
Zuletzt bearbeitet von einem Moderator:
Zurück