AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RegEx Hilfe

Ein Thema von hansklok · begonnen am 9. Apr 2016 · letzter Beitrag vom 9. Apr 2016
Antwort Antwort
hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#1

RegEx Hilfe

  Alt 9. Apr 2016, 13:46
Hi,

Folgende Struktur habe ich:
Code:
>Q28133 Bovin protein
MKAVFLTLLFGLVCTAQETPAEIDPSKIPGEWRIIYAAADNKDKIVEGGPLRNYYRRIEC
INDCESLSITFYLKDQGTCLLLTEVAKRQEGYVYVLEFYGTNTLEVIHVSENMLVTYVEN
YDGERITKMTEGLAKGTSFTPEELEKYQQLNSERGVPNENIENLIKTDNCPP
>P00257-2 Bovin protein
MAARLLRVASAALGDTAGRWRLLLKSSQFIKVSCSGSWISAAQRAFICYSKSGNITCFLR
SEDKITVHFINRDGETLTTKGKIGDSLLDVVVQNNLDIDGFGACEGTLACSTCHLIFEQH
IFEKLEAITDEENDMLDLAYGLTDRSRLGCQICLTKAMDNMTVRVPDAVSDARESIDMGM
NSSKIE
>C1_11500C_B Bovin protein
MDFMKPETVLDLANIRQALVRMEDTIVFDLIERSQFFSSPSVYEKNKYNIPNFDGTFLEW
ALLQLEVAHSQIRRYEAPDETPFFPDQLKTPILPPINYPKILAKYSDEINVNSEIMKFYV
DEIVPQVSCGQGDQKENLGSASTCDIECLQAISRRIHFGKFVAEAKYQSDKPLYIKLILD
KDVKGIENSITNSAVEQKILERLIVKAESYGVDPSLKFGQNVQSKVKPEVIAKLYKDWII
PLTKKVEIDYLLRRLEDEDVELVEKYKK
Pattern:
Code:
^>([^ ]*)\s(.*)[\r\n]((([a-zA-Z])+[\r\n])*)
Das funktioniert soweit auch ganz gut, nur wird die allerletzte Zeile PLTKKVEIDYLLRRLEDEDVELVEKYKK nicht gematcht. Warum?

Danke und Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#2

AW: RegEx Hilfe

  Alt 9. Apr 2016, 14:03
Steht denn nach der letzten Zeile ein Zeilenumbruch? Wenn nicht, dann hast du den Grund, denn dein RegEx erwartet dort einen Umbruch.

MfG Dalai
  Mit Zitat antworten Zitat
hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#3

AW: RegEx Hilfe

  Alt 9. Apr 2016, 14:05
Steht denn nach der letzten Zeile ein Zeilenumbruch? Wenn nicht, dann hast du den Grund, denn dein RegEx erwartet dort einen Umbruch.

MfG Dalai
Nein da steht keiner. Jedoch besagt ja das Sternchen
Code:
*
, dass keiner, einer oder mehrere Umbrüche folgen können. Insofern ist das nicht der Fehler, meiner Ansicht nach.
  Mit Zitat antworten Zitat
SProske

Registriert seit: 16. Feb 2015
Ort: Halle/S.
116 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: RegEx Hilfe

  Alt 9. Apr 2016, 14:18
Wieso nicht einfach
Code:
^>([^ ]*)\s([^\r\n]*)[\r\n]+([A-Za-z\r\n]+)(?=$)
?

Und Dalai hat schon recht, da ist zwar ein Sternchen, das ist aber an der verkehrten Stelle um nur auf das [\r\n] zu wirken.
Das Lookahead am Ende ist nur dazu da, den letzten Zeilenumbruch vor nächsten Zeile nicht mit zu matchen.

roMultiline muss natürlich gesetzt sein.

Ich verwende übrigens https://regex101.com/ zum testen und herumspielen, die "explanation" und auch den Debugger finde ich im Allgemeinen sehr hilfreich - außerdem zeigt es auch noch an, wieviele Steps zum Match nötig waren (in dem Falle 59 vs. 1348)
Sebastian

Geändert von SProske ( 9. Apr 2016 um 14:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#5

AW: RegEx Hilfe

  Alt 9. Apr 2016, 14:20
Doch, ist es. Dein Block
Code:
(([a-zA-Z])+[\r\n])*
sagt, dass Buchstaben UND Zeilenumbruch zusammen stehen muss (oder eben gar nichts davon). Da laut deiner Aussage der Zeilenumbruch fehlt, kann das nicht matchen.

MfG Dalai
  Mit Zitat antworten Zitat
hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#6

AW: RegEx Hilfe

  Alt 9. Apr 2016, 14:21
Perfekt, Dankeschön
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz