Spezieller Regex gesucht

Vatar

Erfahrenes Mitglied
Moinsen.
Ich muss aus einem String, genauer gesagt aus einem tag den Wert eines bestimmten Attributes auslesen.
z.B.:
Code:
vcc:rowLabelCellProperty column="0" row="0" colSpan="2" align="left" value="Lieferantenname"
Daraus benötige ich z.b nur den Wert von value.
Ich arbeite mit JRegex (da ich ein perlscript auf java umstellen muss).
Geht es irgendwie, dass ich aus dem String nur das heraushole was zwischen value=" und dem folgenden" steht.

Ich brauche wirklich dringend Hilfe (seh nur noch irgendwelche Regex rumfliegen mit denen ich nix anzufangen weiß :confused: )
 
Hallo,
ich habe gerade keine zeit dir den Ausdruck zu erstellen, aber schau mal hier nach
http://weitz.de/files/regex-coach.exe
das Programm ist cool, damit kannst du genau sehen welche teile des strings du mit dem Ausdruck erfasst hast;
gruss

*edit
ps etwa so müsste der Ausdruck aussehen:
[value][=]["][\w]*["]
dann musst du ihn nur noch zurechtschneiden...
 
Zuletzt bearbeitet:
Hallo!

Vielleicht so?
Code:
/**
 * 
 */
package de.tutorials;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author Tom
 * 
 */
public class Foo {
	/**
	 * @param args
	 */
	public static void main(String[] args) {

		String str = "vcc:rowLabelCellProperty column=\"0\" row=\"0\" colSpan=\"2\" align=\"left\" value=\"Lieferantenname\"";

		String regex = ".*value=\"(.*)\".*";
		Matcher matcher = Pattern.compile(regex).matcher(str);
		if (matcher.find()) {
			System.out.println(matcher.group(1));
		}

	}
}

Gruß tom
 
Spitzenmäßig.

Der Regex Coach is auch gut (werd ihn wohl noch oft konsolidieren müssen :) )

thx

edit:
hab zufällig noch ein Tool gefunden, welches die Java Regex nutzt und nach einem ersten Test noch etwas besser ist wie der Regex Coach.
guckst du hier
 
Zuletzt bearbeitet:
jetzt hab ich doch noch ein Problem mit dem Regex vom Tom. Es könnte ja sein, dass value nicht am Ende steht sondern mittendrin. In diesem Falle gibt er mir für group(1) alles ab value=" bis zum letzten " aus. Er soll aber nur bis zum nächsten " gehen.

Habs mal so probiert (funktioniert aber nicht):
Code:
String regex = "  .*value=\"([a-zA-Z[^\"]])\"  "
thx
 
Danke für die fixe Antwort.
Funktioniert aber noch nicht ganz.
Code:
value="Buyer name"
Mit diesem Regex gibt er nur "Buyer" aus.
 
Leider nein. Den hatte ich auch schon ausprobiert
Jetzt bekomm ich genau das selbe Ergebnis wie am Anfang: Buyer name" sorted="true"

Code:
Teststring: <vcc:headingCellProperty column=\"3\" row=\"0\" width=\"125\" value=\"Buyer name\" sorted=\"true\" />
 
also hiermit ging es bei mir jetzt
Code:
.*value="(\b.*?)".*

edit:
\b kann auch durch \w ersetzt werden..
mfg

edit edit
Code:
.*value=\"(\\w.*?)\".*
so muss das netuerlich sein..
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück