| Autor | Beitrag | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Fr 11.01.08 11:56 
 
Ich habe mich schon damit beschäftigt und werde jetzt mal kurz sagen wie sich diese Regex für mich anhört:
 		                       Quelltext 
 									| 1:
 | (@"(?:([^\=\$\n]+)\n)?([^\$\n]+\$?)")					 |  (?:   bedeutet am Anfang
 ([^\=   bedeutet kein Gleichheitszeichen
 \$     bedeutet Zeilenende
 \n]    bedeutet Zeilenumbruch???
 +)  bedeutet mindestens einmal oder mehrmals
 \n)? bedeutet dass es optional ist
 wie sich dies nun zu einem sinnvollen Satz zusammenbauen lässt kann ich dir nicht sagen. Evtl. so:
 Am Anfang des Ausdrucks darf kein Gleichheitszeichen stehen und am Zeilenende kommt ein Umbruch mindestens einmal. Der ganze Ausdruck ist optional, aber darüber haben wir ja schon gesprochen, dass zum matchen der zweizeiligen Ausdrücke aus diesem optionalen Zeichen eher ein * gemacht werden sollte.
 Das ist die Weise in der ich diesen Ausdruck verstehe, aber die ist wohl ziemlich daneben schätze ich mal. Für Korrekturen meiner Aussage wäre ich dir dankbar.
 MfG
Moderiert von  Christian S.: Code-Tags hinzugefügt | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Fr 11.01.08 12:07 
 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Fr 11.01.08 12:56 
 
Hmm. Dann mal danke. Ich werde mich jetzt nochmal damit beschäftigen und versuchen dahinter zu steigen.
 Noch eine Frage zum Regulator: Unterscheidet der sich gravierend vom Regex-Designer???
 
 Dann würde ich nämlich den mal testen, falls es da große Unterschiede gibt.
 
 MfG
 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Fr 11.01.08 14:04 
 
Regex-Designer habe ich noch nicht ausprobiert, der Regulator ist recht einfach gehalten, mir reicht er.  _________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Mo 14.01.08 09:50 
 
Hi.
 also mittlerweile bin ich ein wenig vorangekommen. Hier ist mein Regex, das aber leider immer noch nicht so richtig funktioniert. Aber es kann eigentlich nur noch an einer Kleinigkeit hängen.
 
 [+-]*([S][A-Z][A-Z0-9][A-Z0-9]|[2-8][0-9][ 0-9A-Z])([*+-][S][A-Z][A-Z0-9][A-Z0-9]|[2-8][0-9][A-Z ]*)*[^=\n\$]^(^\=)[.][=][S][A-Z][A-Z0-9][A-Z0-9][$]
 
 Ich möchte nun zu den einzelnen Teilen ein bisschen was erklären, damit mir vielleicht jemand erklären kann wo mein Fehler liegt
 
 Teil 1:
 [+-]*([S][A-Z][A-Z0-9][A-Z0-9]|[2-8][0-9][ 0-9A-Z])([*+-][S][A-Z][A-Z0-9][A-Z0-9]|[2-8][0-9][A-Z ]*)* dies sind die Ausdrücke, die in der ersten Zeile stehen wobei ich mir nicht sicher bin, ob das einen Treffer ergibt, weil der Ausdruck ja in der Mitte getrennt wird und statt SWD3 nur SW da steht und das D3 in der zweiten Zeile steht.
 
 [^=\n\$] soll bedeuten, dass kein = oder ein Zeilenumbruch oder ein Dollarzeichen in der ersten Zeile stehen soll
 
 ^(^\=)[.][=] am Zeilenanfang kein = und dann alles lesen bis zum =
 
 [S][A-Z][A-Z0-9][A-Z0-9][$] dann alle Ausdrücke, die mit einem Dollarzeichen enden.
 
 Ich hoffe das hilft zum Verständnis des Problems und jemand kann mir sagen wo der Fehler liegt.
 
 Vielen Dank im Voraus.
 
 MfG
 | 
|  | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Mo 14.01.08 14:20 
 
Hi.
 Weil mir auf meinen letzten Beitrag niemand antwortet stelle ich hier mal eine andere Frage in den Raum.
 
 Und zwar würde ich gerne wissen wie ich folgenden Ausdruck finden könnte:
 
 Der Ausdruck beginnt mit SWAA . Danach soll die ganze Zeile gelesen werden, aber es soll kein = in der Zeile stehen.Am Ende der Zeile ist ein Zeilenumbruch. In der nächsten Zeile soll dann gelesen werden bis zu einem Dollarzeichen.
 
 Ich wollte das so machen: [SWAA][\.]*[^\=][\n]+[.]*[=][.]*[$]$
 
 Das funktioniert aber leider auch nicht so, wie ich mir das vorgestellt habe, aber ist bestimmt leichter zu formulieren.
 
 Es darf in der Zeile einfach kein = stehen, die Zeile muss mit SWAA beginnen, es muss ein Zeilenumbruch enthalten sein und in der darauf folgenden Zeile muss bis zum $-Zeichen gelesen werden. Hört sich ja nicht so schwer an, aber ich bekomms einfach nicht hin.
 
 Ich nehm mir so langsam echt die Lebensfreude wegen diesen Regexes.
 
 Vielleicht kann mir ja jemand weiterhelfen. Danke im Voraus.
 
 MfG
 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Mo 14.01.08 14:33 
 
	  |  bergrath hat folgendes geschrieben: |  	  | Weil mir auf meinen letzten Beitrag niemand antwortet | 
 Ja, schon unverschämt, dass die Leute die hier freiwillig helfen nicht vorm Rechner sitzen und drauf warten, dass Du 'ne Frage stellst. 5h Wartezeit sind wirklich fürchterlich    Du schreibst auch nur, dass die RegEx nicht funktionieren, aber das ist ja nun keine wirklich genaue Beschreibung. Deine Monster-Regex (Was spricht gegen den Regex, den ich vorgeschlagen habe?) nach einem Fehler abzusuchen würde es einfacher machen, wenn Du sagst, was die Regex falsch matchen._________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| bakachan 
          Beiträge: 503
 Erhaltene Danke: 34
 
 W7 (x64) Ultimate
 C# / VB.NET  (VS2010 Ultimate)
 
 | 
Verfasst: Mo 14.01.08 14:38 
 
also ich weiss nicht was du dir bei deinem Regex gedacht hast aber 
auf deinen Regex: [SWAA][\.]*[^\=][\n]+[.]*[=][.]*[$]$
 kann nichts matchen.
 
 1. du willst eine Zeichenfolge "SWAA"    mit deinem Regex [SWAA] kriegst du ein Zeichen das entweder S oder W oder A ist
 2. [\.]* damit findest du eine beliebig lange zeichenfolge die nur aus Punkten besteht
 3. wozu eigentlich [\n] ? es ist ne auswahl für eine möglichkeit??? lass die eckigen klammern da weg
 4. dein + nach dem [\n] wozu is das da? ich dachte du wolltest extra ausdrücke die mit SWAA anfangen udn über 2 zeilen gehen usw .. das + macht den ersten teil optional wenn ich mich richtig erinnere
 5. [$]$   in einem Regex steht $ für das Ende der Zeichenkette und kann somit nicht 2 mal hintereinander auftreten wenn du das richtige $ matchen willst musst du es escapen
 
 meine Empfehlung:
 Wenn du mit Regex arbeiten willst erkundige dich erstmal über die Grundlagen von Regex.
 Die formulierung deines Ausdrucks verrät mir das du diese nichtmal ansatzweise beherscht.
 
 Zuletzt bearbeitet von bakachan am Mo 14.01.08 15:30, insgesamt 1-mal bearbeitet
 | 
|  | 
| Kha 
          Beiträge: 3803
 Erhaltene Danke: 176
 
 Arch Linux
 Python, C, C++ (vim)
 
 | 
Verfasst: Mo 14.01.08 14:41 
 | 
|  | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Mo 14.01.08 15:24 
 
Hi.
 @ Christian S.
 Ich wollte nicht sagen, daß es unverschämt von irgendjemanden ist mir nicht zu antworten.
 Ich habe mir nur einen Ansatz überlegt wie ich es noch lösen könnte. Und wenn ich sage, daß die Regex nicht funktioniert, so ist es meistens so daß garnichts gematched wird.
 
 Gegen dein Regex spricht, daß damit auch sehr viel Erklärungen, die im Text stehen gematched werden. Und ich brauche nur die Ausdrücke wie SWAA-SWAB=SWAC(und am besten längere Ausdrücke, die über 2 Zeilen gehen). Mit deinem Regex wird leider noch sehr viel mehr getroffen. Ich habe probiert mit deinem Regex zu arbeiten und auf meine Vorstellungen anzupassen. Da das sehr lange nicht geklappt hat, bin ich wieder zu meinem Ansatz übergegangen.
 
 Trotzdem nochmal danke.
 
 @bakachan:
 Danke dass du mir meine Fehler aufgezeigt hast. Ich habe die Regexes vorher immer von Hand zu Fuss zusammengebaut und weniger mit Sonderzeichen gearbeitet und mir unterlaufen deswegen wohl solche Fehler, obwohl ich mittlerweile schon mehrere Tutorials gelesen habe. Aber ich werde versuchen mich zu bessern.
 
 @khabarakh:
 Danke für deinen Vorschlag! Ich muss jetzt leider aufhören zu arbeiten, aber ich werde mich später zuhause damit beschäftigen und dann berichten, ob es funktioniert hat oder es noch etwas auf meine Bedürfnisse versuchen abzuändern.
 
 Vielen Dank Jungs und verzeiht mir meine Unwissenheit.
 
 MfG
 | 
|  | 
| Kha 
          Beiträge: 3803
 Erhaltene Danke: 176
 
 Arch Linux
 Python, C, C++ (vim)
 
 | 
Verfasst: Mo 14.01.08 19:05 
 
@bakachan: Oh, hab deinen Beitrag erst jetzt gesehen. Zwei kleine Verbesserungen, damit sie sich unser Lernender nicht falsch einprägt    :
 	  |  bakachan hat folgendes geschrieben: |  	  | das + macht den ersten teil optional wenn ich mich richtig erinnere | 
 + ist "mindestens einmal"
 	  |  bakachan hat folgendes geschrieben: |  	  | in einem Regex steht $ für das Ende der Zeichenkette und kann somit nicht 2 mal hintereinander auftreten wenn du das richtige $ matchen willst musst du es escapen | 
 1. $ matcht mit der Multiline-Option (die wohl benutzt wird) auch das Zeilenende.
 2. $ ist wie auch der Punkt innerhalb von Klassen quasi bereits escapt, also "[$]$" = "\$$". | 
|  | 
| bakachan 
          Beiträge: 503
 Erhaltene Danke: 34
 
 W7 (x64) Ultimate
 C# / VB.NET  (VS2010 Ultimate)
 
 | 
Verfasst: Di 15.01.08 08:12 
 
ok hatte mich also in diesen 2 Dingen bissel geirrt  sorry | 
|  | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Di 15.01.08 10:15 
 
Hi Leute.
 Danke für eure Hilfe.
 
 Mit dem Regex von Khabarakh erhalte ich folgende Ausgabe. Ich habe die Regex vorher noch so abgeändert, daß alle (***)und  somit die Teilebezeichnungen rausgefiltert werden. Die Regex sieht nun so aus:
 
 (@"((([^\=\$\n\(***)]+)\n)([^\$\n]+\$))")
 
 Als Ausgabe erhalte ich in meiner Textbox Folgendes ( nur ein kleines Beispiel):
 
 IECAB              +SWKU
 23 =SWKU$ gefunden an Position: 53445
 23D-SWKM-SWKN-SWKO-SWKP-SWKQ-SWKR-SWKS-SWKT-SWKU-SWD6-SWD5-SWD4-SW
 D3-SWD2-SWD1-SWCB-SWC9-SWC8-SWC7-SWC6-SWC5=SWKV$ gefunden an Position: 53551
 IECEF IECFF                                           +SWKW
 SWCB*SWD6=SWKW$ gefunden an Position: 53672
 IECEE IECFE                                           +SWKX
 
 Ich möchte die Matches, die über 2 Zeile gehen allerdings lieber in einer Zeile stehen haben. Über den Ausdrücken, die ich rausfiltere(z.B. SWCB*SWD6=SWKW$), steht in der Zeile obendrüber nämlich immer, ob es ein + oder - Feature ist (z.B. +SWKW) und der korrespondierende Code aus einer anderen Datenbank,den ich benötige(hier im Bsp.: IECEF IECFF).
 
 Dadurch, daß die 2zeilige Regex 2 Zeilen belegt, fehlt mir hier also die normal darüber stehende Zeile mit den Informationen, ob es ein "+" oder "-"-Feature ist und der korrespondierende Code aus der anderen Datenbank.
 
 Ich habe versucht das Pattern zusammenzufügen und aus den 2 Teilen des Regex einen Ausdruck zu formen und habe dafür nochmal eine Klammer um den ganzen Ausdruck gesetzt.
 
 Leider erhalte ich dann als Ergebnis nicht eine einzeiligen Ausdruck. Aber da ich mir die Ergebnisse in einer Textbox anzeigen lasse, die sehr breit ist, müsste es möglich sein den 2zeiligen Regex in einer Zeile anzeigen zu lassen und dadurch auch die darüber liegende Zeile mit den anderen Informationen zu erhalten.
 
 Die Frage ist nur wie??? Könnt ihr mir vielleicht Tips oder Hinweise dazu geben???
 
 Vielen Dank im Voraus.
 
 MfG
 | 
|  | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Mi 16.01.08 08:07 
 
Hi.
 Also mittlerweile habe ich mir überlegt wie ich trotz der fehlenden Zusatzinformationen weiter vorankommen kann, indem ich sie per Funktion im Text suche.
 Ich verwende folgende Regex, um die Ausdrücke zu filtern:
 		                       C#-Quelltext 
 									| 1:
 | Regex r23 = new Regex(@"((([^\=\$\n\(***)]+)\n+([^\$\n]+\$)))",RegexOptions.Multiline);					 |  Leider ist jetzt ein neues Problem entstanden. Der folgende Ausdruck wird nicht richtig gematcht.
 (45,1*4*5*6*7*8*A*B*C*E*I*G*H*F*M*K*S*Q*Y)*(65,3*4*6*7*8*9*A*B*C*D
 *E*F*U*V*W*X*Y*Z)=SWLO$
 Als Ergebnis erhalte ich folgendes:
 D
 *E*F*U*V*W*X*Y*Z)=SWLO$ gefunden an Position: 56440
 Die obere Zeile wird vor dem D abgeschnitten. Aber ich verstehe nicht warum. Kann mir jemand verraten, woran das liegt?
 Der andere 2zeilige Ausdruck, der im Text enthalten ist, wird ja auch nicht vor dem letzten Buchstaben abgeschnitten.
 23D-SWKM-SWKN-SWKO-SWKP-SWKQ-SWKR-SWKS-SWKT-SWKU-SWD6-SWD5-SWD4-SW
 D3-SWD2-SWD1-SWCB-SWC9-SWC8-SWC7-SWC6-SWC5=SWKV$ gefunden an Position: 53551
 Welcher Teil meiner RegEx ist dafür verantwortlich, daß dies so passiert.
 Wäre echt dankbar, wenn mir jemand meinen Fehler aufzeigen könnte. Vielen Dank schonmal im Voraus.
 MfG | 
|  | 
| bakachan 
          Beiträge: 503
 Erhaltene Danke: 34
 
 W7 (x64) Ultimate
 C# / VB.NET  (VS2010 Ultimate)
 
 | 
Verfasst: Mi 16.01.08 08:14 
 
"[^\=\$\n\(***)]"
darin hast du doch selbst angegeben das keine Klammern und Sterne in der ersten Zeile sein dürfen bzw diese nicht mitgematcht werden
 
 
 Edit: "***" was soll das eigentlich bringen ? so wie ich das sehe hast du 3 mal den stern als auswahl in den eckigen klammern gestellt oder hat das ne Bedeutung die ich noch nciht kenne?
 | 
|  | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Mi 16.01.08 12:19 
 
Hi.
 Durch die *** Filtere ich Bezeichnungen raus, die zwischen 3 Sternen stehen ( das sind Teilebezeichnungen, die ich nicht benötige).
 
 Aber ich habe mir das so gedacht, dass dies nur gilt wenn 3 Sterne aufeinander folgen. Oder habe ich da einen Denkfehler gemacht?
 
 Funktionieren tut das auf alle Fälle mal mit den (***). Ist dieser Ausdruck dann auch dafür verantwortlich, dass das alles abgeschnitten wird in dem Ausdruck?
 
 Regex r23 = new Regex(@"((([^\=\$\n]+)\n)([^\$\n]+\$))",RegexOptions.Multiline);
 
 Habe es jetzt wieder geändert und erhalte die richtigen Matches. Allerdings stehen jetzt wieder die Teilebezeichnungen dabei. Diese stehen immer zwischen jeweils ***.
 
 ***  EXCEPT EUROPEAN PRINCIPLE TERR ***  XAE02              +SWNO
 
 Diesen Ausdruck zwischen den *** und die *** vornedran und hintendran möchte ich auch wegbekommen. Aber wie?
 
 Wäre sehr dankbar für hilfreiche Tips.
 
 MfG
 | 
|  | 
| bakachan 
          Beiträge: 503
 Erhaltene Danke: 34
 
 W7 (x64) Ultimate
 C# / VB.NET  (VS2010 Ultimate)
 
 | 
Verfasst: Mi 16.01.08 13:08 
 
du könntest die ***Text*** in ne extra gruppe packen allerdings würde das nicht verhindern das sie mit gematcht werden (lässt sich auch nicht verhindern weil sie ja teil des matches sein können) sondern höchstens das sie in ne eigne gruppe gepackt werden
was du allerdings tun könntest wäre vorher per Regex.Replace  mit dem Regex
 \*{3}.*\*{3}
 diese texteile durch nichts ersetzen -> sie wären aus dem string raus
 | 
|  | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Mi 16.01.08 15:22 
 
Hi bakachan.
 Vielen Dank für die Regex. Hat einwandfrei funktioniert. Habe jetzt dank deiner Hilfe so ziemlich alle Ausdrücke,die ich brauche, zusammen.
 Hier mal die Regexen, die den Text so wie gewollt kürzen:
 		                       C#-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 
 | textBox1.Text = new Regex("(?<=^|\n).{18}").Replace(gekürzteSolve, "");gekürzteSolve = textBox1.Text;
 textBox1.Text = new Regex(@"\*{3}.*\*{3} ").Replace(gekürzteSolve, "");
 gekürzteSolve = textBox1.Text;
 Regex r23 = new Regex(@"(((^[^***][^\=\$\n]+)\n)([^\$\n]+\$))", RegexOptions.Multiline);
 |  Ausgabe:( nur ein kleiner Auszug davon)
 23 =SWKT$ gefunden an Position: 38913
  IECAB              +SWKU
 23 =SWKU$ gefunden an Position: 38951
 23D-SWKM-SWKN-SWKO-SWKP-SWKQ-SWKR-SWKS-SWKT-SWKU-SWD6-SWD5-SWD4-SW
 D3-SWD2-SWD1-SWCB-SWC9-SWC8-SWC7-SWC6-SWC5=SWKV$ gefunden an Position: 39016
  IECCA IECCB IECCC IECCD I
 SWKR*SWKQ*SWKP*SWKO*SWKN*SWKM=SWKD$ gefunden an Position: 40103
  IEMAD              +SWLF
 23 =SWLF$ gefunden an Position: 40337
 Aber ein letzte kleine Frage hätte ich noch und hoffe, daß mir vielleicht auch noch hier jemand einen Hinweis geben könnte woran es liegt.
 Wenn ich die Regex r23 alleine laufen lasse, also ohne die 2te-Replace-Regex(also die, die die Sternchen und den dazwischen stehenden Text entfernt), dann erhalte ich fast das, was ich die ganze Zeit gesucht habe, nämlich nur die 2zeiligen Ausdrücke. Das Ganze hat allerdings einen kleinen Schönheitsfehler. Denn es wird noch etwas ausgegeben was nicht gewollt ist. Hier schreibe ich mal den Code und danach poste ich noch die Ausgabe. Vielleicht kann mir jemand erklären woran das liegt. Ich wäre dafür sehr dankbar und verspreche euch so schnell nicht mehr mit Regexen zu belästigen.
 Hier der Code:
 		                       C#-Quelltext 
 									| 1:2:
 3:
 
 | textBox1.Text = new Regex("(?<=^|\n).{18}").Replace(gekürzteSolve, "");gekürzteSolve = textBox1.Text;
 Regex r23 = new Regex(@"(((^[^***][^\=\$\n]+)\n)([^\$\n]+\$))", RegexOptions.Multiline);
 |  Wenn ich das kompiliere, erhalte ich folgende Ausgabe:
 CBV   SOLVE TABLE                      0098  26 OCT 07
 23D+24R$ gefunden an Position: 136
 23D-SWKM-SWKN-SWKO-SWKP-SWKQ-SWKR-SWKS-SWKT-SWKU-SWD6-SWD5-SWD4-SW
 D3-SWD2-SWD1-SWCB-SWC9-SWC8-SWC7-SWC6-SWC5=SWKV$ gefunden an Position: 53551
 (45,1*4*5*6*7*8*A*B*C*E*I*G*H*F*M*K*S*Q*Y)*(65,3*4*6*7*8*9*A*B*C*D
 *E*F*U*V*W*X*Y*Z)=SWLO$ gefunden an Position: 56375
 Das ist genau das was ich von Anfang an als Ergebnis erhalten wollte. Leider sind die ersten beiden Zeilen zuviel und sollten nicht ins Ergebnis mit einfliessen. 
 Wenn ich das richtig sehe, werden die ersten beiden Zeilen der Ausgabe auch als ein Match gesehen, weil hinter dem 24R noch ein Dollarzeichen steht. 
 Ich müsste der Regex nur mitteilen, daß in der zweiten Zeile des Matches ein = stehen muss. Dann würden die ersten beiden Zeilen nicht mehr gematcht. Nur bekomme ich das leider nicht hin. Ich habe schon überall ein = in der zweiten Klammer hingemacht, aber es funzt nicht. Kann mir vielleicht jemand verraten, wie ich dieses kleine Problem lösen könnte??? Ich wäre dafür sehr dankbar.
 MfG | 
|  | 
| bakachan 
          Beiträge: 503
 Erhaltene Danke: 34
 
 W7 (x64) Ultimate
 C# / VB.NET  (VS2010 Ultimate)
 
 | 
Verfasst: Mi 16.01.08 15:45 
 
1. das = in ner eckigen klammer zusammen mit anderen auswahlmöglichkeiten  legt ja nicht fest das unbedingt ein = vorkommen muss es ist ja nur eine auswahlmöglichkeit 
wenn du willst das unbedingt ein = drinne ist darfst du es nicht in [] zusammen mit anderen zeichen schreiben sondern musst es einfach so  hinschreiben
 2. wieso hast du immernoch [^***] drinne? ich hab doch schon mehrmals erklärt das das nutzlos ist es sagt nur das das erste (nicht die ersten drei da es ja nur auswahlmöglichkeiten sind) Zeichen kein stern sein darf und außerdem die ausdrücke mit den ***Text*** hast du doch schon ausgefiltert   bzw wenn du unbedingt willst das am Anfang keine 3 sterne stehen musst du es so schreiben : ^\*^\*^\*   oder [^*]{3}
 | 
|  | 
| bergrath  
          Beiträge: 43
 
 
 
 
 | 
Verfasst: Mi 16.01.08 18:54 
 
hi.
 Ich weiß nicht sicher woran es liegt, aber sobald  ich [^***] weglasse wird viel mehr gematcht und nicht nur die 2zeiligen Ausdrücke.
 
 Ich habe jetzt an jeder Stelle in der 2ten Klammer ein = gesetzt, aber es funktioniert nicht. Ich habe es probiert mit (\=)+  oder (\=\)+ oder[=]+ oder
 (\=\)+\ oder [=]+ - an jeder Stelle habe ich die einzelnen Versionen in die Klammer eingefügt, aber ohne Erfolg.Was mache ich falsch? Wie kann man das realisieren, dass die 2 ersten Zeilen nicht gematcht werden bzw. wo muss das = hin??? Ich bin echt langsam am verzweifeln. Könnte einen Hinweis gebrauchen, damit mir ein Licht aufgeht.
 
 Regex r23 = new Regex(@"(((^[^***][^\=\$\n]+)\n)(([^\$\n]+\$)))", RegexOptions.Multiline);
 
 Vielen Dank für Tips und Hinweise im Voraus.
 
 Mfg
 | 
|  |