Problem mit StringRegExp()

08/31/2011 18:14 the_martines#1
Hallo!

Hab ein kleines Problem mit StringRegExp().
Ich will einfach von HTML eine Zahl "rausnehmen". In diesen Fall brauche ich die zahl "62" von diesen String: {initUfo("0", {id:62}.

Sollte einfach sein, ist es aber irgendwie nicht.

Code:
$string = '{initUfo("0", {id:62}'
$string2 = '{initUfo("0", {id:(\d+?)}'
$aReturn = StringRegExp($string , $string2 , 3)
MsgBox(64, "Found it!", $aReturn[0])
Gibt mir:
==> Subscript used with non-Array variable.:
MsgBox(64, "Found it!", $aReturn[0])

Ich hab es ein par mal probier, und es scheint das Problem liegt an "(" Zeichen.

Kann mir jemand dabei helfen?
08/31/2011 18:22 Benhero#2
so sollte es auch gehen:
Code:
$string = '{initUfo("0", {id:62}'
$aReturn = _StringBetween($string , "{id:", "}")
MsgBox(64, "Found it!", $aReturn[0])
08/31/2011 18:44 the_martines#3
Ok, so geht es ohne Probleme!
Vielen dank!
09/08/2011 22:29 theboegl#4
Quote:
Originally Posted by the_martines View Post
Hallo!

Hab ein kleines Problem mit StringRegExp().
Ich will einfach von HTML eine Zahl "rausnehmen". In diesen Fall brauche ich die zahl "62" von diesen String: {initUfo("0", {id:62}.
Dein Ansatz war gut. Du musst nur die erste Klammer escapen ;)
Sieht dann so aus:
Code:
$string = '{initUfo("0", {id:62}'
$string2 = '{initUfo[COLOR="Red"][B]\[/B][/COLOR]("0", {id:(\d+?)}'
$aReturn = StringRegExp($string , $string2 , 3)
MsgBox(64, "Found it!", $aReturn[0])
bzw kannst du es natürlich auch so verkürzen:
Code:
$string = '{initUfo("0", {id:62}'
$aReturn = StringRegExp($string , '{initUfo[COLOR="Red"][B]\[/B][/COLOR]("0", {id:(\d+?)}' , 3)
MsgBox(64, "Found it!", $aReturn[0])
Die Lösung von Benhero gibt dir zwar das "passende" zurück, allerding viel langsamer und irgendwie hilft es dir bei deinem Problem nicht weiter.