reg. Expression: Suche nach Hexadezimalzahl

HPB

Erfahrenes Mitglied
Hi,
irgendwie steh ich auf'm Schlauch:
Wie muss ich die regExpression formulieren, um die Hexadezimalzahl zu finden (wenn ich die Zahl nicht vorher ins Dezimalsystem konvertieren will, sondern direkt in das Pattern einsetzen will):
Code:
import java.util.regex.*;

class UnicodeRegExpression{

	public static void main (String args[]){
		Pattern pattern= Pattern.compile("[\\x23]");
         //und wie ginge es mit einer Oktalzahl?
		Matcher matcher=pattern.matcher("Dieser Text enthält eine Hexadezimalzahl:"+0x23);
		while(matcher.find()){
			System.out.println(matcher.start()+"-"+matcher.end()+": "+matcher.group());
		}
	}
}

Danke für die Hilfe,
PETER
 
Hallo!

Siehe:

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

public class RegexTest {

	private Pattern pattern = Pattern.compile(".*0x([[0-9][A-F]]{1,}).*");

	public static void main(String[] args) {
		RegexTest rt = new RegexTest();
		Matcher matcher = rt.pattern.matcher("0x3F");
		if (matcher.matches()) {
			int i = Integer.parseInt(matcher.group(1), 16);
			System.out.println(Integer.toHexString(i) + " -> " + i);
		}

		//Hier passiert nichts da das Muster nicht passt ...
		matcher = rt.pattern.matcher("0xZZ");
		if (matcher.matches()) {
			int i = Integer.parseInt(matcher.group(1), 16);
			System.out.println(Integer.toHexString(i) + " -> " + i);
		}

		matcher = rt.pattern.matcher("0xAB52AC3");
		if (matcher.matches()) {
			int i = Integer.parseInt(matcher.group(1), 16);
			System.out.println(Integer.toHexString(i) + " -> " + i);
		}
	}
}

Gruß Tom
 
Zurück