|
主题: 问一个提取部分源码的问题?
|
tonest
职务:普通成员
等级:1
金币:0.0
发贴:177
|
#12006/3/3 16:28:12
例如: %^$^%$^##^&^**<-webconment->123456</-webconment->%^$^%$^##^&^**(
请问如何将其中的123456提取出来,或者说将<-webconment->和</-webconment->之间的内容提取出来
有很多网页需要提取这样的内容,如果一页一页的复制,需要处理好几天,困惑了很久,那位高手能提示一下,谢谢!
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#22006/3/3 16:35:01
正则表达式用来干这个就很合适
|
tonest
职务:普通成员
等级:1
金币:0.0
发贴:177
|
#32006/3/3 16:40:36
“正则表达式”学的不精,给个例子好不好?
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#52006/3/4 12:44:41
我自己写的一个函数(ASP),看看能不能用得上。
'读取字符串中指定标签的内容,如果有多个指定的标签,则返回第一个标签的内容
Function GetTagText(Str,TagName)
Dim RegEx,Matches
Set RegEx = New RegExp
RegEx.Global = True
RegEx.IgnoreCase = True
RegEx.Pattern = "<" & TagName & ">[\s\S]*?</" & TagName & ">"
Set Matches= RegEx.Execute(Str)
If Matches.Count>0 Then
GetTagText=Mid(Matches(0),Len(TagName)+3,Len(Matches(0))-(Len(TagName)*2+5))
Else
GetTagText=""
End If
End Function
'设置字符串中指定标签的内容
Function SetTagText(Str,TagName,Fill)
Dim RegEx
Set RegEx = New RegExp
RegEx.Global = True
RegEx.IgnoreCase = True
RegEx.Pattern = "<" & TagName & ">[\s\S]*?</" & TagName & ">"
Fill = "<" & TagName & ">" & Fill & "</" & TagName & ">"
SetTagText=RegEx.Replace(Str,Fill)
End Function
|
Dreaming
职务:普通成员
等级:1
金币:10.0
发贴:1518
|
#62006/3/4 16:49:26
本来是今天上午发的,但是由于论坛有问题,发不到,现在补发 to 楼主:(asp.net 2.0)
string strMy;
int intBegin;
int intEnd;
strMy = "abcdefg<-webconment->123456</-webconment->abcd";
intBegin = strMy.IndexOf("<-webconment->")+14;
intEnd = strMy.IndexOf("</-webconment->");
TextBox1.Text = strMy.Substring(intBegin,intEnd-intBegin);
至于正则表达式,我觉得.net还是用.net的验证RegularExpressionValidator比较好,MS虽然提供了一系列被誉为“白痴化”的东西,但无可否认,它大大的提高开发速度……
|
tonest
职务:普通成员
等级:1
金币:0.0
发贴:177
|
#72006/3/5 14:52:30
非常感谢以上各位的热心帮助!
|