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]);
}