String 从子字符串中查找特定字符

String 从子字符串中查找特定字符,string,apache-flex,flash-builder4.5,String,Apache Flex,Flash Builder4.5,我第一次使用此函数查找字符串: var strng:String = new String(txtSource.text) var position:Number = new Number(); position = strng.indexOf("<img pg",0); strng = strng.substring(position + 4); position = strng.indexOf(">"); strng = strng.substring(0,

我第一次使用此函数查找字符串:

var strng:String = new String(txtSource.text)
var position:Number = new Number();
position = strng.indexOf("<img pg",0);          
strng = strng.substring(position + 4);
position = strng.indexOf(">");
strng = strng.substring(0, position);
textcontrol1.text = String(strng);
但在输出中,我得到一个无字符串 任何人都可以告诉我哪里错了?

试试这段代码

var strng1:String = new String(textcontrol1.text)
var position1:Number = new Number();
position1 = strng1.indexOf('src="http://',0);                   
strng1 = strng1.substring(position1 + 0);
position1 = strng1.indexOf('"');
strng1 = strng1.substring(0, position1);
textcontrol1.text = String(strng1);
不,不,不,只是:

[^>]*表示:零个或多个字符,但不包括右括号>

[^]+表示:一个或多个字符,但不是引号

圆括号将其捕获到结果[1]

作为一个一般性的建议:不要把不需要捕获的东西放进正则表达式中,以保持正则表达式的简单性,即不要将class=或width=添加到正则表达式中

var strng1:String = new String(textcontrol1.text)
var position1:Number = new Number();
position1 = strng1.indexOf('src="http://',0);                   
strng1 = strng1.substring(position1 + 0);
position1 = strng1.indexOf('"');
strng1 = strng1.substring(0, position1);
textcontrol1.text = String(strng1);
var strng1:String = new String(textcontrol1.text);
var position1:Number = new Number();
position1 = strng1.indexOf('src="http://',0);
strng1 = strng1.substring(position1 + 0);
// search 2nd " character
position1 = strng1.indexOf('"', strng1.indexOf('"') + 1);

strng1 = strng1.substring(0, position1 + 1);

textcontrol1.text = String(strng1);
var str:String = '<img pg="asStoryVid" class="" vspace="0" marginheight="0" marginwidth="0" width="300" border="0" src="http://www.abc.com/thumb/msid-22087805,width-300,resizemode-4/xyz.jpg" alt="" title="" ag="">';
//var str:String = new String(textcontrol1.text);
var pattern:RegExp = /<img [^>]*src="([^"]+)"/i; 
var result:Object = pattern.exec(str);

if (result) {
    //textcontrol1.text = result[1];
    trace(result[1]);
}