内容是这样的:
<a href=a.html?111 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a><a href=a.html?112 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a><a href=a.html?118 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a><a href=a.html?115 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a>这上面一共有4条数据。我想取出这三条中的红色部分。即:a.html?111 和 第一条的标题
a.html?112 和 第二条的标题
a.html?118 和 第三条的标题
a.html?115 和 第四条的标题取了半天,取错了。
麻烦大家指点一下。多谢了。
<a href=a.html?111 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a><a href=a.html?112 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a><a href=a.html?118 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a><a href=a.html?115 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a>这上面一共有4条数据。我想取出这三条中的红色部分。即:a.html?111 和 第一条的标题
a.html?112 和 第二条的标题
a.html?118 和 第三条的标题
a.html?115 和 第四条的标题取了半天,取错了。
麻烦大家指点一下。多谢了。
<a\shref\075a.*\starget\075_blank>.*</a>感觉是bug。
3楼朋友,我还要取出链接的标题,也就是红色的部分。
2楼朋友,用replace将他们换行,这样取应该是可行的。不过如果不动原文,是不是比较难取了?
1楼朋友,我的意思就是,用正则把那一段文本,提取出链接和链接标题。谢谢。
嗯?好像我还是没说清楚?
比如这样说吧。
我用了这样一个正则表达式:
<a href=(detail.htm\?[0-9]+) target=_blank>([\u4e00-\u9fa5]+)</a>
这样,只能取到链接标题是汉字的那些。如果标题里带有标点,就取不到了。
而如果把([\u4e00-\u9fa5]+)换成(.*),因为需要取的这4条数据没有换行,所以就一下全取出来了。变成一条了。我刚才用了replace强制添加了一个换行,成功了。
但是如果不强制换行,不改变原有的内容,用正则有没有什么办法取出来。
嗯。谢谢了。
如果用.*</a>,他会取最右边的</a>,而不是最近的那一个。这个效果不好。谢谢楼上几位朋友的相助。结贴。
Private Sub Form_Load()
Dim re As RegExp
Dim mh As Match
Dim mhs As MatchCollection
Dim inpStr As String
inpStr = "<a href=a.html?111 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a><a href=a.html?112 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a><a href=a.html?118 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a><a href=a.html?115 target=_blank>这里有汉字,汉字的标点,还有英文以及英文的标点</a>"
Set re = New RegExp
re.Pattern = "<a href=a.html(.)+?</a>"
Set mhs = re.Execute(inpStr)
Set mh = mhs(0)
MsgBox Mid(mh, 9, 10)
re.Pattern = ">(.)+?<"
Set mhs = re.Execute(mh)
Set mh = mhs(0)
MsgBox Mid(mh, 2, Len(mh) - 2)
End Sub
这个不太好。如果那个ID是4位的就匹配不好了。