Ansicht:   

#304296

fuchsi zur Homepage von fuchsi

Niederösterreich,
23.02.2012, 08:27:08

regular Expressions (pc.coding)

Ich habe einen Text, der folgendermassen aufgebaut ist


\"Name1\" , \"Name2\" , \"Name3\" ,\"Name4\"



der wird von mir jetzt mittels SPLIT(\',\') in ein Array verwandelt.

Nun kanne s aber vorkommen, dass ind en Einzeltexten auch Beistriche vorkommen können.

Also z.B.:

\"Name1, Titel\" , \"Name2\" , \"Name3\" ,\"Name4\"



Dabei würde natürlich der String auch bei dem Besitrich gesplittet werden, was nicht erwünscht ist.
(PS.: der String ist in Wahrheit weit komplexer, und kommt fertig aus einer Fremdsoftware)

Kann man mit Regular Expressions entweder alle String Ausserhalb eine \"\" oder eben auch inner halb eines \"\" gegen einen anderen tauschen?

Ich komm nicht drauf

--
mein privates Hobby. www.ffzell.at

#304297

MudGuard zur Homepage von MudGuard

München,
23.02.2012, 08:35:13

@ fuchsi

regular Expressions

> Ich habe einen Text, der folgendermassen aufgebaut ist
>


> \"Name1\" , \"Name2\" , \"Name3\" ,\"Name4\"



Hm. Ist das wirklich so, daß da mal Leerzeichen vor/nach den Kommata ist, oder ist das wenigstens einheitlich?

> (PS.: der String ist in Wahrheit weit komplexer, und kommt fertig aus einer
> Fremdsoftware)

> Kann man mit Regular Expressions entweder alle String Ausserhalb eine \"\"

Kommt auch darauf an, welches Regex-Paket zur Verfügung steht.
Mit welcher Programmiersprache arbeitest Du denn?

--
[image]
MudGuard
O-o-ostern

#304299

fuchsi zur Homepage von fuchsi

Niederösterreich,
23.02.2012, 08:38:16

@ MudGuard

regular Expressions

> Hm. Ist das wirklich so, daß da mal Leerzeichen vor/nach den Kommata ist,
> oder ist das wenigstens einheitlich?

da habe ich jetz nicht aufgepasst.
Der Originalstring schaut eigentlic so aus


\"[\\\"Paneel\\\", NULL, NULL, NULL, \\\"chf getChfPropList(@M_SCHALE)\\\", \\\"@W_DR \\\\\\\"Durchreiche\\\\\\\" @W_DR2 \\\\\\\"Durchreiche für KB Box (90°)\\\\\\\" @W_GE \\\\\\\"Glas Paneel\\\\\\\" @W_GE1S \\\\\\\"Glas 1-schalig\\\\\\\" @W_GE2 \\\\\\\"Glas Paneel (mit Lisene)\\\\\\\" @W_GE3 \\\\\\\"Glas Paneel (mit Lisene)\\\\\\\" @W_KBB \\\\\\\"Vorbereitung für KB Box\\\\\\\" @W_REF \\\\\\\"Regalfach\\\\\\\" @W_REFO \\\\\\\"Regalfach oben\\\\\\\" @W_REFO_F12_L \\\\\\\"Regalfach Oben Nut Beidseitig, Vorb. Seitenblende Links\\\\\\\" @W_REFO_F12_LM \\\\\\\"Regalfach oben Nut Beidseitig, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_F12_LMR \\\\\\\"Regalfach oben Nut Beidseitig, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_F12_LR \\\\\\\"Regalfach Oben Nut Beidseitig, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_F12_M \\\\\\\"Regalfach oben Nut Beidseitig, Vorb. Mittelseite\\\\\\\" @W_REFO_F12_N \\\\\\\"Regalfach Oben Nut Beidseitig\\\\\\\" @W_REFO_F12_R \\\\\\\"Regalfach Oben Nut Beidseitig, Vorb. Seitenblende Rechts\\\\\\\" @W_REFO_F12_RM \\\\\\\"Regalfach oben Nut Beidseitig, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REFO_F1_L \\\\\\\"Regalfach Oben Nut F1, Vorb. Seitenblende Links\\\\\\\" @W_REFO_F1_LM \\\\\\\"Regalfach oben Nut F1, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_F1_LMR \\\\\\\"Regalfach oben Nut F1, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_F1_LR \\\\\\\"Regalfach Oben Nut F1, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_F1_M \\\\\\\"Regalfach oben Nut F1, Vorb. Mittelseite\\\\\\\" @W_REFO_F1_N \\\\\\\"Regalfach Oben Nut F1\\\\\\\" @W_REFO_F1_R \\\\\\\"Regalfach Oben Nut F1, Vorb. Seitenblende Rechts\\\\\\\" @W_REFO_F1_RM \\\\\\\"Regalfach oben Nut F1, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REFO_F2_L \\\\\\\"Regalfach Oben Nut F2, Vorb. Seitenblende Links\\\\\\\" @W_REFO_F2_LM \\\\\\\"Regalfach oben Nut F2, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_F2_LMR \\\\\\\"Regalfach oben Nut F2, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_F2_LR \\\\\\\"Regalfach Oben Nut F2, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_F2_M \\\\\\\"Regalfach oben Nut F2, Vorb. Mittelseite\\\\\\\" @W_REFO_F2_N \\\\\\\"Regalfach Oben Nut F2\\\\\\\" @W_REFO_F2_R \\\\\\\"Regalfach Oben Nut F2, Vorb. Seitenblende Rechts\\\\\\\" @W_REFO_F2_RM \\\\\\\"Regalfach oben Nut F2, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REFO_N_L \\\\\\\"Regalfach Oben Vorb. Seitenblende Links\\\\\\\" @W_REFO_N_LM \\\\\\\"Regalfach oben Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_N_LMR \\\\\\\"Regalfach oben Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_N_LR \\\\\\\"Regalfach Oben Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_N_M \\\\\\\"Regalfach oben, Vorb. Mittelseite\\\\\\\" @W_REFO_N_R \\\\\\\"Regalfach Oben Vorb. Seitenblende Rechts\\\\\\\" @W_REFO_N_RM \\\\\\\"Regalfach oben Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_F12_L \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Links\\\\\\\" @W_REF_F12_LM \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REF_F12_LMR \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_F12_LR \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REF_F12_M \\\\\\\"Regalfach Nut Beidseitig, Vorb. Mittelseite\\\\\\\" @W_REF_F12_N \\\\\\\"Regalfach Nut Beidseitig\\\\\\\" @W_REF_F12_R \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Rechts\\\\\\\" @W_REF_F12_RM \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_F1_L \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Links\\\\\\\" @W_REF_F1_LM \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REF_F1_LMR \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_F1_LR \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REF_F1_M \\\\\\\"Regalfach Nut F1, Vorb. Mittelseite\\\\\\\" @W_REF_F1_N \\\\\\\"Regalfach Nut F1\\\\\\\" @W_REF_F1_R \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Rechts\\\\\\\" @W_REF_F1_RM \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_F2_L \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Links\\\\\\\" @W_REF_F2_LM \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REF_F2_LMR \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_F2_LR \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REF_F2_M \\\\\\\"Regalfach Nut F2, Vorb. Mittelseite\\\\\\\" @W_REF_F2_N \\\\\\\"Regalfach Nut F2\\\\\\\" @W_REF_F2_R \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Rechts\\\\\\\" @W_REF_F2_RM \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_N_L \\\\\\\"Regalfach Vorb. Seitenblende Links\\\\\\\" @W_REF_N_LM \\\\\\\"Regalfach Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REF_N_LMR \\\\\\\"Regalfach Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_N_LR \\\\\\\"Regalfach Vorb. Seitenblende Beidseitig\\\\\\\" @W_REF_N_M \\\\\\\"Regalfach, Vorb. Mittelseite\\\\\\\" @W_REF_N_R \\\\\\\"Regalfach Vorb. Seitenblende Rechts\\\\\\\" @W_REF_N_RM \\\\\\\"Regalfach Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_SF \\\\\\\"Stoff Paneel\\\\\\\" @W_SF2 \\\\\\\"Stoff Paneel (mit Lisene)\\\\\\\" @W_SF3 \\\\\\\"Stoff Paneel (mit Lisene)\\\\\\\" @W_VB \\\\\\\"Span Paneel\\\\\\\" @W_VB1S \\\\\\\"Span 1-schalig\\\\\\\" @W_VB2 \\\\\\\"Span Paneel (mit Lisene)\\\\\\\" @W_VB3 \\\\\\\"Span Paneel (mit Lisene)\\\\\\\"\\\", @W_REFO_F2_LMR, 0]\"


> Kommt auch darauf an, welches Regex-Paket zur Verfügung steht.
> Mit welcher Programmiersprache arbeitest Du denn?

C#.net mit Visual Studio 2008

--
mein privates Hobby. www.ffzell.at

#304302

MudGuard zur Homepage von MudGuard

München,
23.02.2012, 08:47:38

@ fuchsi

regular Expressions

> > Hm. Ist das wirklich so, daß da mal Leerzeichen vor/nach den Kommata
> ist,
> > oder ist das wenigstens einheitlich?
>
> da habe ich jetz nicht aufgepasst.
> Der Originalstring schaut eigentlic so aus

Mit den vielen \\ drin?
Grauenhaft.

Kannst Du mal ein paar Zeilenumbrüche einfügen an den Stellen, wo Du das gesplittet haben willst?

>
> \"[\\\"Paneel\\\", NULL, NULL, NULL, \\\"chf getChfPropList(@M_SCHALE)\\\", \\\"@W_DR
> \\\\\\\"Durchreiche\\\\\\\" @W_DR2 \\\\\\\"Durchreiche für KB Box (90°)\\\\\\\" @W_GE
> \\\\\\\"Glas Paneel\\\\\\\" @W_GE1S \\\\\\\"Glas 1-schalig\\\\\\\" @W_GE2 \\\\\\\"Glas Paneel
> (mit Lisene)\\\\\\\" @W_GE3 \\\\\\\"Glas Paneel (mit Lisene)\\\\\\\" @W_KBB
> \\\\\\\"Vorbereitung für KB Box\\\\\\\" @W_REF \\\\\\\"Regalfach\\\\\\\" @W_REFO
> \\\\\\\"Regalfach oben\\\\\\\" @W_REFO_F12_L \\\\\\\"Regalfach Oben Nut Beidseitig,
> Vorb. Seitenblende Links\\\\\\\" @W_REFO_F12_LM \\\\\\\"Regalfach oben Nut
> Beidseitig, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_F12_LMR
> \\\\\\\"Regalfach oben Nut Beidseitig, Vorb. Seitenblende Beidseitig,
> Mittelseite\\\\\\\" @W_REFO_F12_LR \\\\\\\"Regalfach Oben Nut Beidseitig, Vorb.
> Seitenblende Beidseitig\\\\\\\" @W_REFO_F12_M \\\\\\\"Regalfach oben Nut
> Beidseitig, Vorb. Mittelseite\\\\\\\" @W_REFO_F12_N \\\\\\\"Regalfach Oben Nut
> Beidseitig\\\\\\\" @W_REFO_F12_R \\\\\\\"Regalfach Oben Nut Beidseitig, Vorb.
> Seitenblende Rechts\\\\\\\" @W_REFO_F12_RM \\\\\\\"Regalfach oben Nut Beidseitig,
> Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REFO_F1_L \\\\\\\"Regalfach Oben
> Nut F1, Vorb. Seitenblende Links\\\\\\\" @W_REFO_F1_LM \\\\\\\"Regalfach oben Nut
> F1, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_F1_LMR \\\\\\\"Regalfach
> oben Nut F1, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_F1_LR
> \\\\\\\"Regalfach Oben Nut F1, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_F1_M
> \\\\\\\"Regalfach oben Nut F1, Vorb. Mittelseite\\\\\\\" @W_REFO_F1_N \\\\\\\"Regalfach
> Oben Nut F1\\\\\\\" @W_REFO_F1_R \\\\\\\"Regalfach Oben Nut F1, Vorb. Seitenblende
> Rechts\\\\\\\" @W_REFO_F1_RM \\\\\\\"Regalfach oben Nut F1, Vorb. Seitenblende
> Rechts, Mittelseite\\\\\\\" @W_REFO_F2_L \\\\\\\"Regalfach Oben Nut F2, Vorb.
> Seitenblende Links\\\\\\\" @W_REFO_F2_LM \\\\\\\"Regalfach oben Nut F2, Vorb.
> Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_F2_LMR \\\\\\\"Regalfach oben Nut
> F2, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_F2_LR
> \\\\\\\"Regalfach Oben Nut F2, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_F2_M
> \\\\\\\"Regalfach oben Nut F2, Vorb. Mittelseite\\\\\\\" @W_REFO_F2_N \\\\\\\"Regalfach
> Oben Nut F2\\\\\\\" @W_REFO_F2_R \\\\\\\"Regalfach Oben Nut F2, Vorb. Seitenblende
> Rechts\\\\\\\" @W_REFO_F2_RM \\\\\\\"Regalfach oben Nut F2, Vorb. Seitenblende
> Rechts, Mittelseite\\\\\\\" @W_REFO_N_L \\\\\\\"Regalfach Oben Vorb. Seitenblende
> Links\\\\\\\" @W_REFO_N_LM \\\\\\\"Regalfach oben Vorb. Seitenblende Links,
> Mittelseite\\\\\\\" @W_REFO_N_LMR \\\\\\\"Regalfach oben Vorb. Seitenblende
> Beidseitig, Mittelseite\\\\\\\" @W_REFO_N_LR \\\\\\\"Regalfach Oben Vorb.
> Seitenblende Beidseitig\\\\\\\" @W_REFO_N_M \\\\\\\"Regalfach oben, Vorb.
> Mittelseite\\\\\\\" @W_REFO_N_R \\\\\\\"Regalfach Oben Vorb. Seitenblende
> Rechts\\\\\\\" @W_REFO_N_RM \\\\\\\"Regalfach oben Vorb. Seitenblende Rechts,
> Mittelseite\\\\\\\" @W_REF_F12_L \\\\\\\"Regalfach Nut Beidseitig, Vorb.
> Seitenblende Links\\\\\\\" @W_REF_F12_LM \\\\\\\"Regalfach Nut Beidseitig, Vorb.
> Seitenblende Links, Mittelseite\\\\\\\" @W_REF_F12_LMR \\\\\\\"Regalfach Nut
> Beidseitig, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_F12_LR
> \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Beidseitig\\\\\\\"
> @W_REF_F12_M \\\\\\\"Regalfach Nut Beidseitig, Vorb. Mittelseite\\\\\\\"
> @W_REF_F12_N \\\\\\\"Regalfach Nut Beidseitig\\\\\\\" @W_REF_F12_R \\\\\\\"Regalfach
> Nut Beidseitig, Vorb. Seitenblende Rechts\\\\\\\" @W_REF_F12_RM \\\\\\\"Regalfach
> Nut Beidseitig, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_F1_L
> \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Links\\\\\\\" @W_REF_F1_LM
> \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Links, Mittelseite\\\\\\\"
> @W_REF_F1_LMR \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Beidseitig,
> Mittelseite\\\\\\\" @W_REF_F1_LR \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende
> Beidseitig\\\\\\\" @W_REF_F1_M \\\\\\\"Regalfach Nut F1, Vorb. Mittelseite\\\\\\\"
> @W_REF_F1_N \\\\\\\"Regalfach Nut F1\\\\\\\" @W_REF_F1_R \\\\\\\"Regalfach Nut F1,
> Vorb. Seitenblende Rechts\\\\\\\" @W_REF_F1_RM \\\\\\\"Regalfach Nut F1, Vorb.
> Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_F2_L \\\\\\\"Regalfach Nut F2,
> Vorb. Seitenblende Links\\\\\\\" @W_REF_F2_LM \\\\\\\"Regalfach Nut F2, Vorb.
> Seitenblende Links, Mittelseite\\\\\\\" @W_REF_F2_LMR \\\\\\\"Regalfach Nut F2,
> Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_F2_LR \\\\\\\"Regalfach
> Nut F2, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REF_F2_M \\\\\\\"Regalfach Nut F2,
> Vorb. Mittelseite\\\\\\\" @W_REF_F2_N \\\\\\\"Regalfach Nut F2\\\\\\\" @W_REF_F2_R
> \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Rechts\\\\\\\" @W_REF_F2_RM
> \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_N_L
> \\\\\\\"Regalfach Vorb. Seitenblende Links\\\\\\\" @W_REF_N_LM \\\\\\\"Regalfach Vorb.
> Seitenblende Links, Mittelseite\\\\\\\" @W_REF_N_LMR \\\\\\\"Regalfach Vorb.
> Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_N_LR \\\\\\\"Regalfach Vorb.
> Seitenblende Beidseitig\\\\\\\" @W_REF_N_M \\\\\\\"Regalfach, Vorb. Mittelseite\\\\\\\"
> @W_REF_N_R \\\\\\\"Regalfach Vorb. Seitenblende Rechts\\\\\\\" @W_REF_N_RM
> \\\\\\\"Regalfach Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_SF \\\\\\\"Stoff
> Paneel\\\\\\\" @W_SF2 \\\\\\\"Stoff Paneel (mit Lisene)\\\\\\\" @W_SF3 \\\\\\\"Stoff Paneel
> (mit Lisene)\\\\\\\" @W_VB \\\\\\\"Span Paneel\\\\\\\" @W_VB1S \\\\\\\"Span 1-schalig\\\\\\\"
> @W_VB2 \\\\\\\"Span Paneel (mit Lisene)\\\\\\\" @W_VB3 \\\\\\\"Span Paneel (mit
> Lisene)\\\\\\\"\\\", @W_REFO_F2_LMR, 0]\"
>
>
> > Kommt auch darauf an, welches Regex-Paket zur Verfügung steht.
> > Mit welcher Programmiersprache arbeitest Du denn?
>
> C#.net mit Visual Studio 2008

Hm. Da kenne ich die Regex-Engine nicht.

Aber erstmal brauch ich das Wunschergebnis, sonst wird\'s nur Raterei.

Ich muß jetzt allerdings zur Arbeit - kann sein, daß ich dann erst abends dazukomme, mir das näher anzuschauen.

--
[image]
MudGuard
O-o-ostern

#304303

fuchsi zur Homepage von fuchsi

Niederösterreich,
23.02.2012, 08:53:25

@ MudGuard

regular Expressions

im erfsten Schritt brauche ich diese Informationsblöcke

\"[

\\\"Paneel\\\"

,

NULL

,

NULL

,

NULL

,

\\\"chf getChfPropList(@M_SCHALE)\\\"

,

\\\"@W_DR \\\\\\\"Durchreiche\\\\\\\" @W_DR2 \\\\\\\"Durchreiche für KB Box (90°)\\\\\\\" @W_GE \\\\\\\"Glas Paneel\\\\\\\" @W_GE1S \\\\\\\"Glas 1-schalig\\\\\\\" @W_GE2 \\\\\\\"Glas Paneel (mit Lisene)\\\\\\\" @W_GE3 \\\\\\\"Glas Paneel (mit Lisene)\\\\\\\" @W_KBB \\\\\\\"Vorbereitung für KB Box\\\\\\\" @W_REF \\\\\\\"Regalfach\\\\\\\" @W_REFO \\\\\\\"Regalfach oben\\\\\\\" @W_REFO_F12_L \\\\\\\"Regalfach Oben Nut Beidseitig, Vorb. Seitenblende Links\\\\\\\" @W_REFO_F12_LM \\\\\\\"Regalfach oben Nut Beidseitig, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_F12_LMR \\\\\\\"Regalfach oben Nut Beidseitig, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_F12_LR \\\\\\\"Regalfach Oben Nut Beidseitig, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_F12_M \\\\\\\"Regalfach oben Nut Beidseitig, Vorb. Mittelseite\\\\\\\" @W_REFO_F12_N \\\\\\\"Regalfach Oben Nut Beidseitig\\\\\\\" @W_REFO_F12_R \\\\\\\"Regalfach Oben Nut Beidseitig, Vorb. Seitenblende Rechts\\\\\\\" @W_REFO_F12_RM \\\\\\\"Regalfach oben Nut Beidseitig, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REFO_F1_L \\\\\\\"Regalfach Oben Nut F1, Vorb. Seitenblende Links\\\\\\\" @W_REFO_F1_LM \\\\\\\"Regalfach oben Nut F1, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_F1_LMR \\\\\\\"Regalfach oben Nut F1, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_F1_LR \\\\\\\"Regalfach Oben Nut F1, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_F1_M \\\\\\\"Regalfach oben Nut F1, Vorb. Mittelseite\\\\\\\" @W_REFO_F1_N \\\\\\\"Regalfach Oben Nut F1\\\\\\\" @W_REFO_F1_R \\\\\\\"Regalfach Oben Nut F1, Vorb. Seitenblende Rechts\\\\\\\" @W_REFO_F1_RM \\\\\\\"Regalfach oben Nut F1, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REFO_F2_L \\\\\\\"Regalfach Oben Nut F2, Vorb. Seitenblende Links\\\\\\\" @W_REFO_F2_LM \\\\\\\"Regalfach oben Nut F2, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_F2_LMR \\\\\\\"Regalfach oben Nut F2, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_F2_LR \\\\\\\"Regalfach Oben Nut F2, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_F2_M \\\\\\\"Regalfach oben Nut F2, Vorb. Mittelseite\\\\\\\" @W_REFO_F2_N \\\\\\\"Regalfach Oben Nut F2\\\\\\\" @W_REFO_F2_R \\\\\\\"Regalfach Oben Nut F2, Vorb. Seitenblende Rechts\\\\\\\" @W_REFO_F2_RM \\\\\\\"Regalfach oben Nut F2, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REFO_N_L \\\\\\\"Regalfach Oben Vorb. Seitenblende Links\\\\\\\" @W_REFO_N_LM \\\\\\\"Regalfach oben Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REFO_N_LMR \\\\\\\"Regalfach oben Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REFO_N_LR \\\\\\\"Regalfach Oben Vorb. Seitenblende Beidseitig\\\\\\\" @W_REFO_N_M \\\\\\\"Regalfach oben, Vorb. Mittelseite\\\\\\\" @W_REFO_N_R \\\\\\\"Regalfach Oben Vorb. Seitenblende Rechts\\\\\\\" @W_REFO_N_RM \\\\\\\"Regalfach oben Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_F12_L \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Links\\\\\\\" @W_REF_F12_LM \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REF_F12_LMR \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_F12_LR \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REF_F12_M \\\\\\\"Regalfach Nut Beidseitig, Vorb. Mittelseite\\\\\\\" @W_REF_F12_N \\\\\\\"Regalfach Nut Beidseitig\\\\\\\" @W_REF_F12_R \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Rechts\\\\\\\" @W_REF_F12_RM \\\\\\\"Regalfach Nut Beidseitig, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_F1_L \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Links\\\\\\\" @W_REF_F1_LM \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REF_F1_LMR \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_F1_LR \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REF_F1_M \\\\\\\"Regalfach Nut F1, Vorb. Mittelseite\\\\\\\" @W_REF_F1_N \\\\\\\"Regalfach Nut F1\\\\\\\" @W_REF_F1_R \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Rechts\\\\\\\" @W_REF_F1_RM \\\\\\\"Regalfach Nut F1, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_F2_L \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Links\\\\\\\" @W_REF_F2_LM \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REF_F2_LMR \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_F2_LR \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Beidseitig\\\\\\\" @W_REF_F2_M \\\\\\\"Regalfach Nut F2, Vorb. Mittelseite\\\\\\\" @W_REF_F2_N \\\\\\\"Regalfach Nut F2\\\\\\\" @W_REF_F2_R \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Rechts\\\\\\\" @W_REF_F2_RM \\\\\\\"Regalfach Nut F2, Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_REF_N_L \\\\\\\"Regalfach Vorb. Seitenblende Links\\\\\\\" @W_REF_N_LM \\\\\\\"Regalfach Vorb. Seitenblende Links, Mittelseite\\\\\\\" @W_REF_N_LMR \\\\\\\"Regalfach Vorb. Seitenblende Beidseitig, Mittelseite\\\\\\\" @W_REF_N_LR \\\\\\\"Regalfach Vorb. Seitenblende Beidseitig\\\\\\\" @W_REF_N_M \\\\\\\"Regalfach, Vorb. Mittelseite\\\\\\\" @W_REF_N_R \\\\\\\"Regalfach Vorb. Seitenblende Rechts\\\\\\\" @W_REF_N_RM \\\\\\\"Regalfach Vorb. Seitenblende Rechts, Mittelseite\\\\\\\" @W_SF \\\\\\\"Stoff Paneel\\\\\\\" @W_SF2 \\\\\\\"Stoff Paneel (mit Lisene)\\\\\\\" @W_SF3 \\\\\\\"Stoff Paneel (mit Lisene)\\\\\\\" @W_VB \\\\\\\"Span Paneel\\\\\\\" @W_VB1S \\\\\\\"Span 1-schalig\\\\\\\" @W_VB2 \\\\\\\"Span Paneel (mit Lisene)\\\\\\\" @W_VB3 \\\\\\\"Span Paneel (mit Lisene)\\\\\\\"\\\"

,

@W_REFO_F2_LMR

,

0

]\"

--
mein privates Hobby. www.ffzell.at

#304313

MudGuard zur Homepage von MudGuard

München,
23.02.2012, 09:46:17

@ fuchsi

regular Expressions

Ok. Die [ und ] direkt entfernen (sprich: erstes + letztes Zeichen weg).

Ich setze mal _ an den Stellen, wo eigentlich ein Leerzeichen ist.

Dann gibt\'s zwei Möglichkeiten:
1. die nicht in \\\"\\\" eingefaßten Teile sind immer NULL bzw. 0

Dann funktioniert

(?:(?<=\\\\\"),_)|(?:,_(?=\\\\\"))|(?:(?<=NULL),_)|(?:,_(?=0))



2. die nicht in \\\"\\\" eingefaßten Teile sind variabel.
Dann hilft (mit vertretbarem Aufwand) nur zweistufiges Vorgehen:
Erster Split mit

(?:(?<=\\\\\"), )|(?:, (?=\\\\\"))


Dann die Teile, die nicht mit \\\" beginnen, mit einem einfachen

,_


nochmal splitten.


Erklärung:
| ist ein \"oder\".
Der erste Ausdruck besteht also aus vier Teilen, die mit Oder verknüpft sind (der zweite Ausdruck besteht aus den ersten beiden Teilen, den erkläre ich also nicht nochmal extra)

Um jeden Teil ist eine nichtmerkende Klammer (?:), damit das Oder sich auf den ganzen Teilausdruck bezieht.

Der erste Teil (?<=\\\\\"),_ sucht nach Komma gefolgt von Leerzeichen, und verlangt, daß davor (positive Lookbehind (?<=) )ein \\\" steht - der \\ muß aber escaped werden, daher \\\\\"

Der dritte Teil (?<=NULL),_) ist praktisch das gleiche, nur daß der positive Lookbehind diesmal nach NULL guckt.

Rein theoretisch könnte man die beiden Fälle auch zusammenfassen, aber viele Regex-Engines können Lookbehind nur mit konstanter Länge ==> lieber per Oder verknüpfen.

Der zweite Teil ,_(?=\\\\\") sucht nach Komma gefolgt von Leerzeichen, und per positive Lookahead (?=) wird noch geguckt, ob danach \\\" (mit escapedtem \\) steht.

Der vierte Teil ist wieder praktisch das gleiche, nur wird diesmal per positive Lookahead nach 0 geguckt.



Die Lookaheads/Lookbehinds sind nötig, da die darin enthaltenen Teile nicht Teil des Suchergebnisses sein sollen, denn das Suchergebnis wird beim Splitten ja aus dem String rausgeschnitten. Die Look-arounds sorgen aber dafür, daß nur die richtigen Kommata gefunden werden.


Zum Testen von Regexen empfehle ich den Regex Coach, da kann man schön drin rumprobieren.

--
[image]
MudGuard
O-o-ostern

#304339

fuchsi zur Homepage von fuchsi

Niederösterreich,
23.02.2012, 14:41:36
(editiert von fuchsi, 23.02.2012, 14:41:49)

@ MudGuard

regular Expressions (ed)

Yepp. Danke.

Hab mich ind er Ausdrücke reingelesen, und kapier sie sogar  :-D

Habe aber gerade gesehen, ich kann Doch in die String-Liefer-Software eingreifen, und mir eine schönere Schnittstelle bauen.

--
mein privates Hobby. www.ffzell.at

#304316

effeff

Ostfriesland,
23.02.2012, 10:14:52

@ fuchsi

regular Expressions

Das kannst du ganz einfach erledigen, indem du Textpassagen ersetzt und einen lesbaren Text draus machst, den du dann zeilenweise splitten und weiterverarbeiten kannst...

Im nachfolgenden Beispiel wird der Text in eine Textbox eingegeben und aufbereitet in eine andere Textbox wieder ausgegeben:

        Dim Originaltext As String = TextBox1.Text

        Dim Neuertext As String = Originaltext.Replace(\"\\\\\\\"\" @\", vbCrLf & \" @\")

        Neuertext = Neuertext.Replace(Chr(34), \"\")

        TextBox2.Text = Neuertext

        \'Zeilenweise splitten und verwerten und dabei die erste Zeile nicht beachten

--
Gruß,

ff

Möge TUX mit dir sein!

#304298

MudGuard zur Homepage von MudGuard

München,
23.02.2012, 08:36:25

@ fuchsi

regular Expressions

Nachtrag:

> der wird von mir jetzt mittels SPLIT(\',\') in ein Array verwandelt.

> Kann man mit Regular Expressions entweder alle String Ausserhalb eine \"\"
> oder eben auch inner halb eines \"\" gegen einen anderen tauschen?

Willst Du eigentlich splitten oder ersetzen?

--
[image]
MudGuard
O-o-ostern

#304300

fuchsi zur Homepage von fuchsi

Niederösterreich,
23.02.2012, 08:39:25

@ MudGuard

regular Expressions

> Nachtrag:
>
> > der wird von mir jetzt mittels SPLIT(\',\') in ein Array verwandelt.
>
> > Kann man mit Regular Expressions entweder alle String Ausserhalb eine \"\"
> > oder eben auch inner halb eines \"\" gegen einen anderen tauschen?
>
> Willst Du eigentlich splitten oder ersetzen?

Splitten. Allerdings verhindern, dass auch bei einem , innerhalb eines Textes gesplittet wird.

--
mein privates Hobby. www.ffzell.at

#304311

Karsten Meyer zur Homepage von Karsten Meyer

Konstanz am Bodensee,
23.02.2012, 09:24:21

@ fuchsi

regular Expressions

Moin fuchsi,
offenbar sind doch die Anführungszeichen der Trenner und nicht das Komma.

Gruß Karsten

--
Ich bin sehr aktiv bei facebook, wo ich vor allem Fotos zeige und mich in Gruppen über alles mögliche, insbesondere meine Heimatstadt Konstanz austausche.

#304312

MudGuard zur Homepage von MudGuard

München,
23.02.2012, 09:25:16

@ Karsten Meyer

regular Expressions

> Moin fuchsi,
> offenbar sind doch die Anführungszeichen der Trenner und nicht das Komma.

Nein, nicht ganz, siehe Posting unten mit den Splits.

--
[image]
MudGuard
O-o-ostern

#304338

Berny

23.02.2012, 14:27:49

@ fuchsi

regular Expressions - Strings

> Dabei würde natürlich der String auch bei dem Besitrich gesplittet werden,

So\'n bissken Stoff auch noch aufteilen...? :kratz:

--
Es grüsst Berny.

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz