Ich versuche gerade einen Xml-substring auf seine vollstaendigkeit zu pruefen.
Der grund ist, dass ich von einem Stream lese der mir immer nur teilstuecke liefert.
Dazu verwende ich einen StringBuffer um den XML-String zusammenzusetzen.
Regex war noch nie wirklich meine Staerke, und deshalb bitte ich euch um eure Hilfe!
Mein Momentaner stand ist folgender:
Nun ist die Ausgabe aber folgende:Code:public class RegexTest { public static void main(String[] args) { // String regex = "<MSG(>|\\sID=\"\\d\">)[\\p{ASCII}[^(</MSG>)]]+"; // String regex = "<MSG(>|\\sID=\"\\d\">)[\\p{ASCII}&&[^</MSG>]]*"; // String regex = "[<MSG(>|\\sID=\"\\d\">)]{1}[\\p{ASCII}]+</MSG>"; String regex = "<MSG>|<MSG\\sID=\"\\d\">[\\p{ASCII}]*</MSG>"; String message = "d><MSG><MSG ID=\"2\"><INFO><TYPE> 6 </TYPE></INFO></MSG><MSG ID=\"1\"><INFO><TYPE>7</TYPE></INFO></MSG></MSG>"; System.out.println( "Regex: " + regex ); System.out.println( message + "\nmessage end\n" ); Pattern pattern = Pattern.compile( regex ); Matcher matcher = pattern.matcher( message ); while ( matcher.find() ) { String m = matcher.group(); System.out.println( m ); } } }
und nichtCode:<MSG> <MSG ID="2"><INFO><TYPE> 6 </TYPE></INFO></MSG><MSG ID="1"><INFO><TYPE>7</TYPE></INFO></MSG></MSG>
Ich hoffe mir kann dabei einer Helfen! Ich werde zwar weiter probieren, bin aber sicher ihr seit 100mal schneller als ich!Code:<MSG ID="2"><INFO><TYPE> 6 </TYPE></INFO></MSG> <MSG ID="1"><INFO><TYPE>7</TYPE></INFO></MSG>
mfg
nul
Lesezeichen