Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 01:39

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



StringRegExp Problem

Discussion on StringRegExp Problem within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
StringRegExp Problem

Hallo Elitepvpers,

ich habe zurzeit ein Problem mit StringRegExp. Undzwar habe ich den String
PHP Code:
title="Holzfäller Stufe 0" shape=CIRCLE alt="Holzfäller Stufe 0" coords=101,33,28 href="build.php?id=1" 
und möchte gerne den Titel auslesen wobei href dabei hilft das richtige zu finden, da sich das ganze 18 mal wiederholt (build.php?id=1 bis build.php?id18). In href setze ich ebenfalls 'build.php?id=' & $i & '"' ein. Allerdings gibt es nun ein Problem undzwar gibt er immer nur den Titel von der ersten Stelle, die im Quelltext vorkommt zurück wenn ich für href .*? einsetze. Wenn ich nichts einsetze kommt immer eine Fehlermeldung. Soweit ich sehe liegt das am ? im Link.
Und jetzt meine Frage was muss ich für den Link einsetzen, dass der Link bis zur Zahl ignoriert wird, die ich die mittels der Variable einsetze.
BlackHybrid is offline  
Old 04/23/2011, 19:16   #2
 
ZeraPain's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
was genau willst du jetzt auslesen?
den titel? was hat der mit href zu tun.
oder willst du die ID auslesen?
ZeraPain is offline  
Old 04/23/2011, 19:35   #3
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Ich will den Titel auslesen. Und da das objekt 18 mal existiert und man die ambesten mithilfe des hrefs ermitteln kann möchte ich href benutzen nur eben, dass die zahl am ende mit einer Variable ersetzt wird.(Befindet sich in einer For schleife) Nur gibt es jetzt noch ein anderes Problem undzwar ist das ? ja eigentlich ich sag jetzt mal ein Befehl und somit kann ich den Link so nicht stehen lassen, da er sonst nicht mit dem Quelltext übereinstimmt.
BlackHybrid is offline  
Old 04/23/2011, 19:46   #4
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
lies doch einfach alle in ein array, inklusive der id :s
lolkop is offline  
Old 04/23/2011, 20:02   #5
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Kann man nicht den Link bis zur Zahl ersetzten mit was änlichem wie ".*?" weil ich wollte dann in die For schleife noch eine If abfrage einbauen, ob es sich um Holzfäller oder Eisenmine handelt oder so und dann gleich mit GuiCtrlSetData den wert eines Controls das eben auch aus einem Array besteht und ich das ganze dann kurz und einfach gelöst hätte.

Wenn nicht löse ich das ganze halt per Umwege.
BlackHybrid is offline  
Old 04/23/2011, 20:07   #6
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
verstehe nicht warum du eine schleife bauen willst, wenn du doch alles aufeinmal in ein array einlesen kannst...

Code:
$regExp = StringRegExp($string, 'title="(.+?)" .*? href="build.php\?id=(\d+)"', 4)
das würde dir beispielsweise ein array von arrays ausgeben, welche jeweils name mit build-id beinhalten.

man kann das ganze natürlich auch sehr kompliziert über mehrere schleifen laufen lassen.
ich jedoch bevorzuge eigentlich immer den leichtesten weg :s
lolkop is offline  
Thanks
1 User
Old 04/23/2011, 20:25   #7
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Ich schau mir das gleich mal genauer an. Aber eigentlich habe ich nur den Backslash vor dem ? gesucht. Aber mal eine andere Frage warum gibt er mir hier
PHP Code:
$string '<AREA title="Holzfäller Stufe 0" shape=CIRCLE alt="Holzfäller Stufe 0" coords=101,33,28 href="build.php?id=1"><AREA title="Getreidefarm Stufe 0" shape=CIRCLE alt="Getreidefarm Stufe 0" coords=165,32,28 href="build.php?id=2">'
for $i 1 to 2
$class 
StringRegExp($string'title="(.*?)" shape=CIRCLE alt=".*?" coords=.*? href="build.php\?id='&$i&'"'1)
ConsoleWrite($class[0]&@CRLF)
next 
immer nur Holzfäller Stufe 0 zurück?
BlackHybrid is offline  
Old 04/23/2011, 20:30   #8
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
weil das immer vorne steht?

ich mein du suchst schließlig "a .*? b"

obs da nu a .*? c .*? b gibt oda nich is egal^^ es wird immer a ausgegeben weils vor b steht. alles dazwischen ignorierst du ja einfach...

wie gesagt wenn du es umständlich über schleifen machen willst haste da schon mehr probleme bei...

am einfachsten wäre es einfach alles auf einmal einzulesen.
lolkop is offline  
Thanks
1 User
Old 04/23/2011, 20:41   #9
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Achso ok vielen Dank.
Endlich kann ich weiter machen
Ist aber eigentlich blöd dasses nicht so klappt.
BlackHybrid is offline  
Old 04/23/2011, 20:57   #10
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by BlackHybrid View Post
Achso ok vielen Dank.
Endlich kann ich weiter machen
Ist aber eigentlich blöd dasses nicht so klappt.
klappen würde es, wenn du das ganze etwas kleverer aufbaust.

allerdings ist regexp dafür konzipiert, einmal die engine zu starten, um damit einen großen string am stück zu parsen.
wenn du das ständig für kleine stückchen des strings wiederholen würdest, hättest du dabei einen riesen effizienzverlust...
lolkop is offline  
Old 04/23/2011, 21:00   #11
 
ZeraPain's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
Code:
$string = '<AREA title="Holzfäller Stufe 0" shape=CIRCLE alt="Holzfäller Stufe 0" coords=101,33,28 href="build.php?id=1"><AREA title="Getreidefarm Stufe 0" shape=CIRCLE alt="Getreidefarm Stufe 0" coords=165,32,28 href="build.php?id=2">'

$count = 1
While 1
	$tmp = StringInStr($string, "title=", True, True, $count)
	If $tmp == 0 Then
		ExitLoop
	Else
		$out = StringRegExp(StringMid($string, $tmp), 'title="(.*?)"', 1)
		$count = $tmp + 6
		ConsoleWrite($out[0] & @CRLF)
	EndIf
WEnd
ZeraPain is offline  
Reply


Similar Threads Similar Threads
[Hilfe]Ungelöstes Server Erstell Problem, ausführliche Problem Schilderung
09/15/2011 - Flyff Private Server - 8 Replies
Hey Com! Ich hoffe, dass dieser Thread nicht als Spamthread angesehen wird, da ich ja gestern schon einen zu diesem Thema eröffnet habe. Sorry wenn ich euch mit dem Thema nerve, aber ich sitze nun schon 4 Tage über dem Problem, und finde einfach keine Lösung. Nun werde ich hier allerdings eine ausführlichere Beschreibung des Problems geben. Mein Problem ist, dass ich den Windows Mssql Server 2008/2005 aus Sedrika's TuT nicht installieren kann, da sobald ich ihn immer installiere...
StringRegExp Problem ...
04/12/2011 - AutoIt - 2 Replies
Moin, Ich hab ein kleines Problem... Und zwar habe ich dies: <td>Level:</td> <td>30</td> Als testdatei zum auslesen unter test.html gespeichert. Ich möchte den Wert zwischen <td></td> auslesen.
StringRegExp - Makros ?
03/24/2011 - AutoIt - 3 Replies
Hey ich wollt ma fragen ob bei StringRegExp Makros funzen bei mir geht das nämlich nich ^^ ich wollt halt das man in diesem Script : #include <WebTcp.au3> #include <String.au3> _AutoItObject_Startup() TCPStartup()
StringRegExp
11/07/2010 - AutoIt - 0 Replies
Es geht um YT halt :P Je nach Suchanfrage gibt es entweder einen String nach dem Schema <a href="/watch?gl=DE&client=mv-google&h l=de&v=ltlsfOOkBqg">Hey YOUTUBE!!!</a> oder eben 2 nur dass der 2. wie folgt aussieht <a href="/watch?gl=DE&client=mv-google&h l=de&v=vQqpMukDSP4"><img src="http://i.ytimg.com/vi/vQqpMukDSP4/defaul t.jpg?w=120&h=90&sigh=89rqZ2bCAF69IhXVyyTV XK_DaXI" alt="Video" width="120" height="90" style="border:0;margin:0px;" /></a> Mein bisheriger Pattern sieht so aus <a...



All times are GMT +1. The time now is 01:39.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.