Problem mit einer RegEx

Status
Nicht offen für weitere Antworten.

m@nu

Bekanntes Mitglied
ich blicks nicht mehr...
warum matcht folgendes nicht??

regex:
Code:
#include <(.*?)\\.idl>

input:
Code:
#include <CS_B.idl>                         // CS - Allgemein (obligat)

im regexbuddy funktioniert alles tiptop... (einmal als ganzes und einmal die capturegroup vor der dateiendung)
...aber java findet, dass da nix gefunden werden kann ???:L

meine implementierung:
Code:
        BufferedReader in = new BufferedReader(new FileReader("RSIN_RiskEvent_1.idl"));
        
        String buffer;
        Pattern pattern = Pattern.compile("#include <(.*?)\\.idl>", Pattern.CANON_EQ);
        
        
        while((buffer = in.readLine()) != null) {
            buffer = buffer.trim();
            
            if(!buffer.startsWith("//")
                    && !buffer.startsWith("/*")
                    && !buffer.startsWith("*")) {
                
                Matcher matcher = pattern.matcher(buffer);
                
                if(matcher.matches())
                    System.out.println(matcher.group(0));
            }
        }

kann mir jemand erklären warum das so ist?

besten dank im voraus & grüsse
m@nu
 
S

SlaterB

Gast
was für ein begnadet dämlicher Test, sorry ;)

so gehts:
Code:
public class Test2
{
    public static void main(String[] args)
    {
        String test = "#include <CS_B.idl>";
        Pattern pattern = Pattern.compile("#include <(.*?)\\.idl>");
        Matcher matcher = pattern.matcher(test);


        if (matcher.matches())
        {
            System.out.println(matcher.group(0));
        }
    }
}
funktioniert, Rest hat anscheinend erstmal nix mit RegEx zu tun sondern z.B. mit datei-Lesen ;)

edit:
oder doch:
mit jedem Zeichen mehr klappt es nicht mehr,
Matcher prüft immer, ob der gesamte String passt
 

m@nu

Bekanntes Mitglied
hehe, gar nix dämlicher test!
bin für uns hier im büro ein tool am schreiben, welches das editieren von CORBA-vorlagestrukturen (IDL's) erleichtern soll.
und da brauchts eben nen parser, der auch schon fertige files lesen kann.
(darum sind auch noch comments usw. per startsWidth kodiert usw. ... is alles noch in entwicklung)


hm, das heisst ich muss entweder den regex anpassen oder gibts da ne option die ich zuschalten kann für den matcher?

<edit>
hab jetzt mal noch nen .*? am schluss rangehängt... klappt jetzt auch mit dem Matcher... aber irgendwie nur ne halbpatzige lösung, nicht?
</edit>
 
S

SlaterB

Gast
da ist die Frage, was du überhaupt tun willst,

suchst du nur einen Teil oder willst du den ganzen String matchen, was du im Moment machst
(Java macht das was du schreibst, nicht das was du willst)

ein paar Matcher-Operationen:

Code:
 boolean find() 
          Attempts to find the next subsequence of the input sequence that matches the pattern. 


 boolean matches() 
          Attempts to match the entire input sequence against the pattern.
bei group ist zwar dummerweise von 'previous match' die Rede, geht aber auch mit find:

if (matcher.find())
{
System.out.println(matcher.group(0));
}
 

m@nu

Bekanntes Mitglied
aha! super! vielen dank für die info!
brauch die regex unter java mehr oder weniger zum ersten mal. denke, auch ich sollte die API's ein wenig besser lesen, wenns um ein neues thema geht ;)

nochmals thx & nen schönen abend! :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Analysemuster - Welches nehme ich für diese Problem? Softwareentwicklung 0
L Design Patterns zu abstraktem Problem Softwareentwicklung 2
C Regex Problem Softwareentwicklung 1
TheJavaKid RegEx Problem Softwareentwicklung 2
C Regex-Problem Softwareentwicklung 24
C GIT Einstieg - Problem Softwareentwicklung 12
H Problem mit jsp:setproperty Softwareentwicklung 10
B Regex-Problem mit replace außerhalb des matching bereichs liegender Zeichenketten Softwareentwicklung 2
Landei MS-Access-Problem Softwareentwicklung 3
TiME-SPLiNTER Banales regEx-Problem Softwareentwicklung 2
A 8 Damen Problem (Backtracking) Softwareentwicklung 2
U xmlvm-Problem: Der erzeugte Obj-C-Code erzeugt Fehler in Apple's Xcode SDK Softwareentwicklung 3
S Subversion und Source Folder Problem. Softwareentwicklung 6
G PHP Problem: Geltungsbereich von Variablen Softwareentwicklung 3
L Problem mit Vererbung Softwareentwicklung 6
C Ein Problem mit der RSA Versschlüsselung Softwareentwicklung 3
W Problem mit Umlauten in xml Dateien auf englischen Systemen Softwareentwicklung 7
H Problem Programmieren Softwareentwicklung 12
H Problem mit eclipse Softwareentwicklung 3
M IllegalStateException - Problem mit GUI und Observer pattern Softwareentwicklung 4
B JavaScript/JSON Problem Softwareentwicklung 2
MTiN Problem mit Rot/Schwarz-Baum Softwareentwicklung 1
F Problem mit DOS-Box Softwareentwicklung 2
A Problem mit Datum-Formatierung Softwareentwicklung 2
K Knapsack Problem: Algorithmus? Softwareentwicklung 7
M Traveling Salesman Problem Softwareentwicklung 6
S Problem PJIRC java-applet Softwareentwicklung 4
rambozola problem mit division in oracle Softwareentwicklung 2
Icewind Problem mit der OOP Softwareentwicklung 4
G Problem mit ActionListener Softwareentwicklung 7
C Mysql-Frage(Problem mit nicht durchgeführten Zugriff) Softwareentwicklung 5
A 2D subimage detection mit einer AI Softwareentwicklung 0
B Etliche Anfragen von einer IP ablehnen? Softwareentwicklung 2
F Datenspeicherung in Listen statt in einer Datenbank Softwareentwicklung 6
C Grundgedanken zu einer Scoring App Softwareentwicklung 7
stg File-Download ohne Speichern einer lokalen Kopie Softwareentwicklung 8
D Datenverwaltung einer App Softwareentwicklung 3
K Einlesen einer .dat-Datei (verschiedene Formate) | Entwicklung unter Einsatz von Design-Patterns Softwareentwicklung 0
B In einer virtuellen Maschine entwickeln (Virtual Box) Softwareentwicklung 5
L Parsen einer HTML Seite Softwareentwicklung 3
K Mindestanforderung einer Software Softwareentwicklung 7
C Wie kann ich ein Panel auf einer Tabelle plazieren? Softwareentwicklung 9
R PHP: Auslesen einer ID aus Radiobutton und Nutzung in SQL Softwareentwicklung 2
T Über Joins mehrere Schlüssel aus einer Tabelle auflösen Softwareentwicklung 7
C Darstellung einer dynamischen Bindung Softwareentwicklung 2
I Entwicklung einer UML - KLasse Softwareentwicklung 2
R static methode innerhalb einer klasse ! Softwareentwicklung 5
M In MSSQL ganze Spalte einer Tabelle in andere Tabelle kopier Softwareentwicklung 2
W Statische Klassen oder neue Instanz einer Klasse nutzen? Softwareentwicklung 11
T nur EIN objekt einer klasse erstellen ? Softwareentwicklung 2
K Kommunnikation in einer Applikation Softwareentwicklung 17
K GUI "Inhalte" in einer Datenbank speichern Softwareentwicklung 2
S Aufrufen einer Methode einer abgeleiteten Klasse von Oberkla Softwareentwicklung 4
S Überladen des Rückgabedatentypen einer Funktion Softwareentwicklung 7
G Befehl zum downloaden einer Website Softwareentwicklung 2
D Variablendeklaration in einer iterativen Methode = Böse? Softwareentwicklung 10
C Filterung von geraden und ungeraden Zahlen aus einer Datei Softwareentwicklung 4
D Name einer Instanz einer Klasse IN der Klasse erfahren ?? Softwareentwicklung 3
M Regex-Regel um fehlende Schlusszeichen zu finden Softwareentwicklung 1
H Regex Frage Softwareentwicklung 2
H [Java]Regex Hilfe Softwareentwicklung 3
P Nur ganze Worte ersetzen mit RegEx Softwareentwicklung 2
G RegEx Version number Softwareentwicklung 8
M Regex Ausnahmen/Bedingungen Softwareentwicklung 5
H [RegEx] Anführungszeichen finden Softwareentwicklung 2
A Regex mit Negation Softwareentwicklung 2
ruutaiokwu regex, der mit nur html-comments, nicht aber javascript entfernt Softwareentwicklung 16
V RegEx um zu escapen? Softwareentwicklung 2
B Regex, um Sätze zu erkennen Softwareentwicklung 3
A Verschachteln von REGEX Softwareentwicklung 4
D Regex zur auswertung von SQL Statements Softwareentwicklung 3
S Regex Frage Softwareentwicklung 4
S sonderzeichen mit regex abfragen Softwareentwicklung 2
N Wie testet ihr regex auf korrektheit? Softwareentwicklung 8
S [RegEx] Dateigerecht geschriebene Namen parsen Softwareentwicklung 2

Ähnliche Java Themen

Neue Themen


Oben