15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Verwenden von regulären Ausdrücken<br />

var str:String = "She sells seashells by the seashore.";<br />

trace(str.search(/sh/)); // output: 13 -- Not the first character<br />

Wenn das i-Flag jedoch gesetzt ist, stimmt der Großbuchstabe S mit dem regulären Ausdruck überein:<br />

var str:String = "She sells seashells by the seashore.";<br />

trace(str.search(/sh/i)); // output: 0<br />

Mit dem i-Flag wird die Groß- und Kleinschreibung nur bei den Zeichen A-Z und a-z, jedoch nicht bei Sonderzeichen<br />

wie Ä und ä ignoriert.<br />

m-Flag (multiline)<br />

Wenn das m-Flag (multiline) nicht gesetzt ist, entspricht ^ dem Anfang eines Strings und $ dem Ende eines Strings.<br />

Wenn das m-Flag gesetzt ist, entsprechen diese Zeichen jeweils dem Anfang bzw. dem Ende einer Zeile im String.<br />

Betrachten Sie den folgenden String, der ein Zeilenvorschubzeichen enthält:<br />

var str:String = "Test\n";<br />

str += "Multiline";<br />

trace(str.match(/^\w*/g)); // Match a word at the beginning of the string.<br />

Obwohl das g-Flag (global) im regulären Ausdruck gesetzt ist, gibt die match()-Methode nur einen<br />

übereinstimmenden Teilstring zurück, da nur eine Entsprechung für das ^-Zeichen vorliegt, nämlich am Anfang des<br />

Strings. Folgendes wird ausgegeben:<br />

Test<br />

Es folgt der gleiche Code mit dem gesetzten m-Flag:<br />

var str:String = "Test\n";<br />

str += "Multiline";<br />

trace(str.match(/^\w*/gm)); // Match a word at the beginning of lines.<br />

Nun werden die Wörter am Anfang der beiden Zeilen ausgegeben:<br />

Test,Multiline<br />

Beachten Sie, dass nur das Zeichen \n das Ende einer Zeile angibt. Das Ende einer Zeile wird jedoch nicht durch<br />

folgende Zeichen angegeben:<br />

Wagenrücklaufzeichen (\r)<br />

Unicode-Zeilentrennzeichen (\u2028)<br />

Unicode-Absatztrennzeichen (\u2029)<br />

s-Flag (dotall)<br />

Wenn das s-Flag (dotall oder „dot all“) nicht gesetzt ist, entspricht ein Punkt (.) in einem regulären Ausdruck nicht<br />

dem Zeilenvorschubzeichen (\n). Daher wird im folgenden Beispiel keine Entsprechung zurückgegeben:<br />

var str:String = "Test\n";<br />

str += "Multiline";<br />

var re:RegExp = /.*?/;<br />

trace(str.match(re));<br />

Wenn das s-Flag jedoch gesetzt ist, wird mit dem Punkt auch eine Übereinstimmung mit dem Zeilenvorschubzeichen<br />

erkannt:<br />

var str:String = "Test\n";<br />

str += "Multiline";<br />

var re:RegExp = /.*?/s;<br />

trace(str.match(re));<br />

Letzte Aktualisierung 27.6.2012<br />

94

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!