Regular Expressions in Java

fastfiler

Mitglied
Hallo,

wie es der titel schon sagt geht um reguläre ausdrücke in java. ich hab schon öfter damit gearbeitet und stellte auch bisher kein problem dar - nur jetzt macht java nicht das was ich mir vorgestellt hab. und zwar möchte ich alle keywords eines *.tex files durch ein blank ersetzten. im prinzip nicht mehr

z.b.
\newline
\\
\tableofcontents

Code:
string=string.replaceAll("\\[^^]+", "");

desweiteren möchte ich alle parameterangangen ebenfalls durch ein blank ersetzen.

z.b.
[h]
[irgendwas]

Code:
string=string.replaceAll("[^]]*]", "");

da ich wie gesagt schon öfters mit regulären ausdrücken zu tun hatte bzw. habe verwende ich das tool regex coach um dort die ausdrücke zu forumulieren und gleich zu testen was diese genau bewirken. in beiden fällen machen die obrigen ausdrücke was sie sollen - nur sobald ich sie mit den obrigen statements ausführe passiert nichts - bei anderen jedoch machts keine probleme.

weiss hier zufällig jmd abhilfe bzw. sieht den fehler in meinem forumulierten ausdruck - oder stösst java hier an seine grenzen?! - was ich mir nur schwer vorstellen kann.


vielen dank

fasti
 
Zuletzt bearbeitet:
Hallo!

Code:
 /**
  * 
  */
 package de.tutorials;
 
 /**
  * @author Tom
  * 
  */
 public class RegexReplaceExample {
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		String s = "foo [irgendwas] bar";
 		System.out.print(s + " -> ");
 		System.out.println(s.replaceAll("\\[.*\\]", ""));
 		s = "\\newline abdaghjgdjhe";
 		System.out.print(s + " -> ");
 		System.out.println(s.replaceAll("\\\\.* ", ""));
 		s = "\\\\aaaaaa 123";
 		System.out.print(s + " -> ");
 		System.out.println(s.replaceAll("\\\\.* ", ""));
 	}
 
 }

Gruß Tom
 
hi tom,

vielen dank - ich habs mir fast gedacht, dass das so geht und auch schon ähnliches in die richtung gehend probiert. wäre ne frage der zeit gewesen bis ich das richtige erwischt hätte.

jetzt hab ich nur noch ein problem indem mich java wieder ärgert.

folgendes beispiel:

abcdesk dafas

d.h. zwischen 2 wörtern mehrere blanks.

mein schönes regex coach entfernt mir genau diese kette von blanks mit folgendem ausdruck.

[\s}]*\s

auch hier lässt mich java im stich. laut api gehört das"\s" zu den predefined character classes und steht für whitespaces.

hast du zufällig noch ne idee ? ;)



hat sich erledigt

[\\s}]*\\s
 
Zuletzt bearbeitet:
Zurück