Ich versuche ein Feld aus einer Zeichenfolge zu ziehen und es zurückzugeben.Was ist los mit meinem ActionScript Regex?
Meine Funktion:
public function getSubtype(ut:String):String {
var pattern:RegExp = new RegExp("X=(\w+)","i");
var nut:String = ut.replace(pattern, "$1");
trace("nut is " + nut);
return nut;
}
ich die Zeichenfolge bin vorbei:
http://foo.bar.com/cgi-bin/ds.pl?type=boom&X=country&Y=day&Z=5
die Trace-Anweisungen gibt die obige Zeichenfolge mit aus Modifikation.
Ich habe das Muster auf Ryan Swanson Flex 3 Regular Expression Explorer ausprobiert und es gibt: X = Land. Mein Wunschergebnis ist "Land".
Muss offensichtlich sein, aber ich kann es nicht sehen. Jede Hilfe wird geschätzt.
TB
änderte meine Funktion auf die folgende und es funktioniert:
public function getSubtype2(ut:String):String {
trace("searching " + ut);
var pattern:RegExp = new RegExp("X=([a-z]+)");
var r:Object = pattern.exec(ut);
trace("result is " + r[1]);
return r[1].toString();
Interessanterweise aber nicht mit X = (\ w +) nicht überein, und einen Fehler verursacht. ???? }
Ja, das ist ein besserer Weg. Und wenn AS wie Java ist, müssen Sie versuchen: new RegEx ("X = (\\ w +)", "i"); – PhiLho
Obwohl die Adobe-Dokumentation \ w + als Beispiel verwendet. – Todd
In einem * Regex-Literal * verwenden Sie einen umgekehrten Schrägstrich: '/ X = (\ w +) /'. Sie schreiben es als * string * literal, um es an den RegExp-Konstruktor zu übergeben: 'new RegExp (" X = (\\ w +) ")'; deshalb müssen Sie zwei Backslashes verwenden. ref: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/RegExp.html –