我想從字符串中拉出一個字段並將其返回。我的ActionScript Regex有什麼問題?
我的功能:
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;
}
我傳遞給它的字符串:
http://foo.bar.com/cgi-bin/ds.pl?type=boom&X=country&Y=day&Z=5
跟蹤語句返回上面的字符串進行修改。
我試過Ryan Swanson的Flex 3 Regular Expresion Explorer中的模式,它返回:X = country。我希望結果是「國家」。
必須顯而易見,但我看不到它。任何幫助將不勝感激。
TB
改變了我的功能,下面和它的作品:
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();
有趣的是,雖然使用X =(\ w +)不匹配而導致錯誤。 ???? }
是的,這是一個更好的方法。如果AS和Java一樣,則必須嘗試:新的RegEx(「X =(\\ w +)」,「i」); – PhiLho
儘管adobe文檔使用\ w +作爲示例。 – Todd
在* regex文字*中使用一個反斜槓:'/ X =(\ w +)/'。你把它寫成一個*字符串*文字將它傳遞給RegExp構造函數:'new RegExp(「X =(\\ w +)」)';這就是爲什麼你必須使用兩個反斜槓。 ref:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/RegExp.html –