正则表达式

在途中 2006-11-26 10:06:15
刚开始学正则表达式,没有书,看了帮助,一时还是一头雾水,请大侠帮忙!

原文:<LI><A
href="http://www.jjedu.com.cn/ReadNews.asp?NewsID=9697&BigClassName=教育文件&SmallClassName=一般通知&SpecialID=0&pass=0"
target=_blank>关于回收2006年高考考生档案的通知</A><FONT color=#990000>[11月24日]</FONT><FONT
color=#ff0000>[166]</FONT><IMG src="select.files/news.gif">") document.write("
<LI><A

如何用正则表达式获得:
1:http://www.jjedu.com.cn/ReadNews.asp?NewsID=9697&BigClassName=教育文件&SmallClassName=一般通知&SpecialID=0&pass=0
2:关于回收2006年高考考生档案的通知

分不够可再加!
...全文
209 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Vb_Net4Zeng 2006-12-04
  • 打赏
  • 举报
回复
最简单的表达式了吧?
href="(?<url>[^"]+)[^>]+>(?<text>[^<]+)
href="(?<url>.+?)"\s?.+?>(?<text>.+?)<
提供一种思路的表达式
The Regulator 2.0测试通过
gzdiablo 2006-12-04
  • 打赏
  • 举报
回复
Vb.net中 字符串中的双引号要通过字符转义取得 好像是连续2个 ""
gzdiablo 2006-12-03
  • 打赏
  • 举报
回复
Dim regex As String = "(?:<(a)[^>]*(?<start>(?:href)(?:\s*=\s*(?<end>[""']?))))(?:[^\s""'>]*?)[^>]*>(?<innerhtml>(?:\S|\s)*?)</\1>"
Dim options RegexOptions = RegexOptions.IgnoreCase
Dim reg As Regex = New Regex(regex, options)
在途中 2006-12-03
  • 打赏
  • 举报
回复
gzdiablo(),如果你路过再请你帮忙一下,我仿照MSDN上的例子写这个过程,想获得结果,这样写是有问题的,那一串正则表达式的下边出现了很边下划线,语法是有问题的,没法通过。该怎么办呢?

Private Sub DumpHrefs(ByVal inputString As String)
Dim r As Regex
Dim m As Match

r = New Regex((?:<(a)[^>]*(?<start>(?:href)(?:\s*=\s*(?<end>["']?))))(?:[^\s"'>]*?)[^>]*>(?<innerhtml>(?:\S|\s)*?)</\1>
, RegexOptions.IgnoreCase Or RegexOptions.Compiled)

m = r.Match(inputString)
While m.Success
Console.WriteLine("发现=" & m.Groups(1).Value _
& " at " & m.Groups(1).Index.ToString())
m = m.NextMatch()
End While
End Sub
gzdiablo 2006-12-02
  • 打赏
  • 举报
回复
不好意思没看到你的第二个要求用下面的

(?:<(a)[^>]*(?<start>(?:href)(?:\s*=\s*(?<end>["']?))))(?:[^\s"'>]*?)[^>]*>(?<innerhtml>(?:\S|\s)*?)</\1>

测试

<LI><A
href="http://www.jjedu.com.cn/ReadNews.asp?NewsID=9697&BigClassName=教育文件&SmallClassName=一般通知&SpecialID=0&pass=0"
target=_blank>关于回收2006年高考考生档案的通知</A><FONT color=#990000>[11月24日]</FONT><FONT
color=#ff0000>[166]</FONT><IMG src="select.files/news.gif">") document.write("
<LI><A

得到1个match
===================================match1
<A
href="http://www.jjedu.com.cn/ReadNews.asp?NewsID=9697&BigClassName=教育文件&SmallClassName=一般通知&SpecialID=0&pass=0"
target=_blank>关于回收2006年高考考生档案的通知</A>
---------------------------group 1
A
---------------------------group "start"
href="
---------------------------group "end"
"
---------------------------group innerhtml
关于回收2006年高考考生档案的通知

测试通过
zjx1302 2006-12-02
  • 打赏
  • 举报
回复
不懂学习中....
在途中 2006-12-01
  • 打赏
  • 举报
回复
按gzdiablo()所写的表达式去做,我还是没办法实现,不知gzdiablo()是不是用的是C#语言还是VB?我用的是VB却有问题!

自己继续努力中……
dlzhangln 2006-11-27
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/5121/5121715.xml?temp=.3605615
dlzhangln 2006-11-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/lzmtw/archive/2006/09/16/1231746.aspx
mobydick 2006-11-27
  • 打赏
  • 举报
回复
string yourStr = ......;
MatchCollection mc = Regex.Matches(yourStr, "<a\\s+href=\"(?<url>.+?)\"(\\s|\\S)+?>(?<text>.+?)</a>", RegexOptions.IgnoreCase);
foreach(Match m in mc)
{
m.Groups["url"].Value;//href
m.Groups["text"].Value;//
}
gzdiablo 2006-11-27
  • 打赏
  • 举报
回复
获取指定HTML标签的指定属性:
表达式:

(?<=<(?:标签名)[^>]*(?<start>(?:属性名)(?:\s*=\s*(?<end>["']?))))(?:[^\s"'>]*)

按照你的要求改下就是

(?<=<(?:A)[^>]*(?<start>(?:href)(?:\s*=\s*(?<end>["']?))))(?:[^\s"'>]*)

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧