# regex auf xml-tags...



## ruutaiokwu (20. Jan 2011)

hallo zusammen,

möchte tags in der art

*<tag />*

per regex nach

*<tag>-1</tag>*

umwandeln.

weiss jemand wie das geht?


mfg, jan


----------



## Mizar (26. Jan 2011)

Hallo, für den Fall das du eine Lösung nicht schon selbst gefunden hast, kann dir vielleicht folgender kleiner Code weiterhelfen:

```
public class Main
{
	public static void main(String[] args)
	{
		String data = "";
		try {
			Scanner scanner = new Scanner(new File("data.xml"));
			data = scanner.useDelimiter("\\Z").next();
			scanner.close();
		} catch(IOException e) {
			e.printStackTrace();
		}
		System.out.println(data.replaceAll("<\\s*(([^>\\s]+)(?:\"[^\"]*\"|'[^']*'|[^>\"'\\s]|\\s+(?!/))+)\\s*/\\s*>", "<$1>-1</$2>"));
    }
}
```
Das hier wäre also der RegEx (mit Escapesequenzen für Java):

```
<\\s*(([^>\\s]+)(?:\"[^\"]*\"|'[^']*'|[^>\"'\\s]|\\s+(?!/))+)\\s*/\\s*>
```
und der entsprechende Ersetzungsausdruck:

```
<$1>-1</$2>
```
So sollte das ganze dann so ersetzt werden wie du es haben willst. Zumindest wenn ich bei meinem RegEx nichts übersehen habe. 

*EDIT:* Die ganze Pattern und Matcher Geschichte mal durch ein simpleres "replaceAll" ersetzt.


----------



## ruutaiokwu (26. Jan 2011)

super sache, vielen dank!


gruss, jan


----------



## ruutaiokwu (29. Jan 2011)

super kompakt, der code! nochmals besten dank!

gruss, jan


----------

