[Frage]Teil eines String auslesen

03/04/2011 16:37 BlackHybrid#1
Hey Com,

ich hab mal eine Frage und zwar habe ich ein String, aus dem ich ein Bestimmtes Wort auslesen möchte. Soweit klappt ja auch alles mit StringInStr allerdings möchte ich anschließend ein stück weiter links von dem gefundenen Wort ein weiteren teil des Strings auslesen und frage mich ob das irgendwie machbar ist.

MfG, BlackHybrid
03/04/2011 16:40 PenGuin :O#2
Kannst du mal ein Beispiel geben, wie der String z.B. aussehen kann?
03/04/2011 16:44 BlackHybrid#3
PHP Code:
<img src="img/x.gif" class="reslevel rf2 level1" alt="!!String!!" /> 
Hier das mal als Beispiel.

Ich möchte dass wie hier !!String!! ausgelesen wird und dann mit _StringBetween oder so z.B. class="" ausliest
03/04/2011 17:38 lolkop#4
Code:
$string = '<img src="img/x.gif" class="reslevel rf2 level1" alt="!!String!!" />'
$class = StringRegExp($string, 'class="(.*?)" alt="!!String!!" \/>', 1)
ConsoleWrite($class[0]&@CRLF)
für genau sowas sind doch regexp funktionen da =)
03/04/2011 17:48 BlackHybrid#5
Ahh vielen Dank
Wie Würde es hier aussehen?
PHP Code:
<area href="Gesucht" coords="101,33,28" shape="circle" title="!!String!!" alt="!!String!!"/> 
Wenn ich coords und shape ignorieren will aber sich immer ändern.

EDIT: Das es ein "." ist weis ich jetzt aber nicht wie ich das mache wenn ich nicht weis wie viele punkte es sein müssen.

EDIT2: Würde .|..|... bei coords gehen?
03/04/2011 18:11 lolkop#6
guck dir doch einfach mal die hilfe an.

du kannst immer jeweils gewisse werte ersetzen durch variablen.

immer zuerst die zeichen, die auftauchen könnte (wobei "." für beliebige zeichen steht) dann die anzahl der zeichen (wobei * von 0 bis unendlich reicht).

willst du also alle zeichen zwischen 2 anführungszeichen ignorieren, wäre die einfachste variante ".*?"

ausgegeben werden nur zeichen die eingeklammert sind.

für deinen speziellen string würde das also so aussehen:
Code:
$string = '<area href="Gesucht" coords="101,33,28" shape="circle" title="!!String!!" alt="!!String!!"/>  '
$class = StringRegExp($string, '<area href="(.*?)" coords=".*?" shape=".*?" title="!!String!!" alt="!!String!!"\/>', 1)
ConsoleWrite($class[0]&@CRLF)
hier würde jetzt das eingeklammerte Gesucht ausgegeben werden, die andern werden zwar mit eingelsen, aber ignoriert.