Archiv verlassen und diese Seite im Standarddesign anzeigen : RegExpr: Bestimmte Textteile auslesen
hi,
ich hab folgenden string vorliegen:
||File2.txt||112 Bytes||13/05/2008||LEER||Thema1||
ich krieg es einfach nicht per reg expression, die teile jeweils zwischen den "||" auszulesen, also so in der art:
File2.txt
112 Bytes
13/05/2008
LEER
Thema1
könntet ihr mir weiterhelfen.
danke schonmal
gruß
jon.west
13.05.2008, 14:31
Willst du das unter dem vi-Editor auslesen?
Oder wie soll ich das verstehen?:)
Tar-Minyatur
13.05.2008, 14:53
Wozu brauchst du da nen regulären Ausdruck? Du kannst doch einfach || als Split-Zeichenkette nehmen und den String in Tokens aufteilen. Viele Programmiersprachen haben dafür eine Split-Funktion. Und auch die Linux Shell hat dafür einen Befehl, der mir aber gerade entfallen ist.
Wenn du was spezifischeres damit vor hast, müsstest du vielleicht noch dazuschreiben, womit du diesen String auseinandernehmen willst. (Programmiersprache/Shell/...)
Kenn mich net so richtig aus, aber funzt das nicht so?
^\|\|([^\|]+)\|\|([^\|]+)\|\|([^\|]+)\|\|([^\|]+)\|\|([^\|]+)\|\|$
Firefall
16.05.2008, 15:31
Kenn mich net so richtig aus, aber funzt das nicht so?
^\|\|([^\|]+)\|\|([^\|]+)\|\|([^\|]+)\|\|([^\|]+)\|\|([^\|]+)\|\|$
Prinzipiell geht das, dann hat man aber einen Match mit N Submatches. Einfacher ist das:
||([^|]*)Dann hat man N Matches mit je einem SUbmatch, der den gesuchten String enthält. Aber wie schon gesagt, split ist VIEL besser ;)
Der Ausdruck ||([^|]*) füllt das Array allerdings auch mit leeren Einträgen.
Falls du hier Regex anwenden möchtest solltest du es auf ([^|]*[^|]) ändern.
[0] => Array (
[0] =>
[1] =>
[2] =>
[3] => File2.txt
[4] =>
[5] =>
[6] =>
[7] => 112 Bytes
[8] =>
[9] =>
[10] =>
[11] => 13/05/2008
[12] =>
[13] =>
[14] =>
[15] => LEER
[16] =>
[17] =>
[18] =>
[19] => Thema1
[20] =>
[21] =>
[22] =>
)
[0] => Array (
[0] => File2.txt
[1] => 112 Bytes
[2] => 13/05/2008
[3] => LEER
[4] => Thema1
)
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.