# REGEX Problem - Regex auf den gesamten String anwenden?



## angelikamorgan (21. Januar 2008)

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: 
	
	
	



```
[ 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


```
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);
		}		
	}
```


----------



## kaMii (21. Januar 2008)

Dein Pattern überzeugt mich nicht ganz, und mit split() biste besser dran:


```
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


----------

