问题描述
现在数据库有一表table一字段infoinfo里面是<p><imgsrc="xxxxxx.gif">or<imgsrc="/image/XXXXXXXXXXxxxxx.jpg"><inputxxxxxx><imgsrc="http://www.xxx.com/xxxxxx.jpg">or<imgsrc="xxxxxx.bmp">反正就是这个字段里一定会有img标签我想拿[color=#FF0000]第一个图片的路径不要img,src这些标签[/color]咋办...sql里写也行.net里写也行能看明白就行还有大哥们我求你们别复制过来文章了,看不明白我想要个实例如果是.net里面写,我绑定的datalist,<%%>在了html里,也不知道怎么去截取
解决方案
解决方案二:
现在数据库有一表table一字段infoinfo里面是<p><imgsrc="xxxxxx.gif">or<imgsrc="/image/XXXXXXXXXXxxxxx.jpg"><inputxxxxxx><imgsrc="http://www.xxx.com/xxxxxx.jpg">or<imgsrc="xxxxxx.bmp">反正就是这个字段里一定会有img标签我想拿第一个图片的路径不要img,src这些标签咋办...sql里写也行.net里写也行能看明白就行还有大哥们我求你们别复制过来文章了,看不明白我想要个实例如果是.net里面写,我绑定的datalist,<%%>在了html里,也不知道怎么去截取
解决方案三:
正则匹配"<img.*?src="(.*?)"";
解决方案四:
string.Replace不行吗?
解决方案五:
数据库里面既然是图片的路径,为什么不把如:"/image/XXXXXXXXXXxxxxx.jpg"保存在数据库,而Html标签直接在页面里写出来呢?这样的话不是好控制吗?
解决方案六:
Replace在这里咋使俄
解决方案七:
用正则表达式匹配。
解决方案八:
是这情况,我要从别人写的带图片的文章中取出图片
解决方案九:
不知道是我理解能力差,还是你写的话有问题.我半天才看懂你写的什么.strings=............(取出值.)stringval=GetImgSrc(s);privatestringGetImgSrc(s){stringpatrn="<img.*?src="(w*?)"";Matchm=Regex.Match(s,patrn);returnm.Result("$1");}
解决方案十:
string.Replace(oldstring,newstring);string.Replace(@"<img>","");
解决方案十一:
正则和replace正则比较简单点;replace匹配也可以,但是有点小麻烦。楼上几位朋友都给出来了,我也没必要写了。
解决方案十二:
我是.net1.1pcgenius大哥"<img.*?src="(w*?)"";这个有问题俄。。还有regex我出不来。。。
解决方案十三:
正则是比较优化的方法,试试楼上几位的
解决方案十四:
推荐正则..
解决方案十五:
加上命名空间.usingSystem.Text.RegularExpressions;protectedvoidPage_Load(objectsender,EventArgse){strings="<imgsrc="dfsdf"/>";stringval=GetImgSrc(s);Label1.Text=val;}privatestringGetImgSrc(strings){stringpatrn="<img.*?src="(\w*?)"";Matchm=Regex.Match(s,patrn);returnm.Result("$1");}已经帮你测试过了.
解决方案:
但是在前台怎么写呢?我绑定的是DataListGetImgSrc咋和<%#DataBinder.Eval(Container.DataItem,"Info")%>联系下=。=
解决方案:
后台usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;usingSystem.Collections;usingSystem.Text.RegularExpressions;publicpartialclass_Default:System.Web.UI.Page{stringCheckBoxList1Item;stringasd;protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){string[]str=newstring[]{"asd","dsa","qwe","ewq"};ListItemitems=newListItem();for(inti=0;i<str.Length;i++){CheckBoxList1.Items.Add(items);}CheckBoxList1.DataSource=str;CheckBoxList1.DataBind();}}protectedvoidButton1_Click(objectsender,EventArgse){for(inti=0;i<CheckBoxList1.Items.Count;i++){if(CheckBoxList1.Items[i].Selected){CheckBoxList1Item+=("&"+CheckBoxList1.Items[i].Value);}}Regexr=newRegex("&");asd=r.Replace(CheckBoxList1Item,"",1);//Response.Write(CheckBoxList1Item);//Response.Write(asd);string[]ss=Regex.Split(asd,"&");Response.Write(ss[1]);}}
前台<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>无标题页</title></head><body><formid="form1"runat="server"><div><asp:CheckBoxListID="CheckBoxList1"runat="server"RepeatColumns="3"RepeatLayout="Flow"></asp:CheckBoxList> <br/><asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="Button"/></div></form></body></html>
已经测试过
解决方案:
按上面的原理,,可以解决你的问题
解决方案:
,,,
解决方案:
stringhtmlCode="<imgsrc="kjlk.jpg"><imgsrc="jlk.jpg"><imgsrc="aaa.jpg">";stringurlCode=htmlCode.Substring(htmlCode.IndexOf("<imgsrc="",0));urlCode=urlCode.Substring(10,urlCode.IndexOf(""")-1);this.Response.Write(urlCode);
解决方案:
htmlCode你可以改成你需要的来测试一下
解决方案:
comeherelate,haha
解决方案:
sql能做到吗我想要具体代码。。。我的数据是dataset查出绑定到datalist上的
解决方案:
多次使用replace或者用一次正则。娶第一个数组内容就行。上面已经有代码了。
解决方案:
如果出现以外字符的话replace很麻烦,还要注意replace的顺序。建议用正则表达式match。也可以多次match的啊。我自己研究了一个下午的正则。感觉很好玩。哈哈。今天特别有说话的冲动。
解决方案:
DECLARE@myStrvarchar(300),@tempStrvarchar(300),@resultStrvarchar(300)set@myStr='<p><imgsrc="123456.gif">'set@tempStr=SUBSTRING(@myStr,CHARINDEX('<imgsrc="',@myStr)+10,len(@myStr))set@resultStr=substring(@tempStr,1,charindex('"',@tempStr)-1)select@resultStrset@myStr='<imgsrc="/image/ABCDEFGH12345.jpg"><inputxxxxxx><imgsrc="http://www.xxx.com/xxxxxx.jpg">'set@tempStr=SUBSTRING(@myStr,CHARINDEX('<imgsrc="',@myStr)+10,len(@myStr))set@resultStr=substring(@tempStr,1,charindex('"',@tempStr)-1)select@resultStrset@myStr='<imgsrc="987654.bmp">'set@tempStr=SUBSTRING(@myStr,CHARINDEX('<imgsrc="',@myStr)+10,len(@myStr))set@resultStr=substring(@tempStr,1,charindex('"',@tempStr)-1)select@resultStr--10为<imgsrc="的长度g和s之间一个空格
解决方案:
usingSystem.Text.RegularExpressions;
解决方案:
REeg,vs2003测试通过usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;//导入RE需要的命名空间usingSystem.Text.RegularExpressions;namespaceWebApplication1{///<summary>///WebForm2的摘要说明。///</summary>publicclassWebForm2:System.Web.UI.Page{privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面stringresultStr="";stringhtmlCode="sdfsdf<imgsrc="123456dfsdf.jpg"/>";stringsrcCode=GetImgSrc(htmlCode);resultStr+=srcCode+"<br>";htmlCode="<p><imgsrc="123456.gif">";srcCode=GetImgSrc(htmlCode);resultStr+=srcCode+"<br>";htmlCode="<imgsrc="/image/ABCDEFGH12345.jpg"><inputxxxxxx><imgsrc="http://www.xxx.com/xxxxxx.jpg">";srcCode=GetImgSrc(htmlCode);resultStr+=srcCode+"<br>";htmlCode="<imgsrc="98765.bmp">";srcCode=GetImgSrc(htmlCode);resultStr+=srcCode;this.Response.Write(resultStr);}publicstringGetImgSrc(stringhtmlCode){stringformatStr="<img.*?src="(\w*.*?)"";Matchm=Regex.Match(htmlCode,formatStr);returnm.Result("$1");}#regionWeb窗体设计器生成的代码overrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}///<summary>///设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///</summary>privatevoidInitializeComponent(){this.Load+=newSystem.EventHandler(this.Page_Load);}#endregion}}
解决方案:
但是在前台怎么写呢?我绑定的是DataListGetImgSrc咋和<%#DataBinder.Eval(Container.DataItem,"Info")%>联系下=。=--------------------------------------------<%#GetImgSrc(DataBinder.Eval(Container.DataItem,"Info"))%>可以这么写~
解决方案:
其实你要问的大家都给你解答过了上面很多demo都可以正常运行我猜你大概是要把文章里面的第一张图片地址读出来作为文章的封皮或者索引图片之类的如何取出地址,上面大家都说得很清楚了,这里不重复至于如何跟你的“联系下”挂上勾,我说一下思路先在DataSet那里设置一个变量IMGIndex并将字段中你需要的图片地址赋给IMGIndex,然后在你的List中增加一列,在你的List中可以这样写:<Asp:TemplateColumnHeaderStyle-HorizontalAlign="center"HeaderText="索引图片"><ItemTemplate><imgsrc='<%#Container.DataItem("IMGIndex")%>'border=0></ItemTemplate></Asp:TemplateColumn>
解决方案:
学习了
解决方案:
该回复于2009-03-19 10:31:10被版主删除
解决方案:
引用31楼yushuiyouyue的回复:
.netQQ群,67226009,给大家提供一个交流的平台,有学习欲望的哥们,想相互帮助,寻找组织的,请加。ASP.NET群,ASP.NET技术群,ASP.NET高手群,ASP.NET牛人,ASP.NET学习群,ASP.NET爱好者群,ASP.NETQQ群