社区
C#
帖子详情
难的来了,用正则表达式匹配网页中所有连接
qinamao
2006-09-29 05:29:13
要求匹配所有 能用鼠标点击的连接
...全文
372
12
打赏
收藏
难的来了,用正则表达式匹配网页中所有连接
要求匹配所有 能用鼠标点击的连接
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
2sanshi
2006-10-31
打赏
举报
回复
学习
qinamao
2006-09-30
打赏
举报
回复
感谢gzdiablo() 以后向你请教,还请多多帮助!
gzdiablo
2006-09-30
打赏
举报
回复
这个就是获取A标签了
你用这个
<(" + 标签名称+ ")[^>]*>(\s*|.)*</\1>
这个是获取需要关闭标签的标签 即 <XXX></XXX> 的标签 不过不支持嵌套支持嵌套的不太好写
实际是
<(a)[^>]*>(\s*|.)*</\1>
这样就能获取全部A标签 其他标签同理
如果有多种标签就这样写 (a|XXX|xxx)
如果是不需要关闭标签的标签 即 <XXX >的 如<img src="xxx" height="xxx" ...>
就简单多了
<(" + 标签名称+ ")[^>]*>
用这个就行了
qinamao
2006-09-30
打赏
举报
回复
gzdiablo() :
21312sfdr<a href="XXXXXX">xxxxxx</a>asdf
结果是返回包含所有连接标记的:
<a href="XXXXXX">xxxxxx</a>
我想获取上述匹配呢?
gzdiablo
2006-09-29
打赏
举报
回复
(?<=((?:src|href|url|background)(?:\s*=\s*(["']?))))(?:[^\s"'>]*)
用这个可以找出除FLASH几乎所有可能存在的连接
FLASH的连接是写在Value里面的
上面这条语句
假设<a href="XXXXXX">xxxxxx</a>
match获取的是 连接内容即 XXXXXX
group 1 获取的是 前缀 href=" 注:上面语句可以分辨是 双引号 单引号 空
group 2 获取的是 包围符号 即 双引号 单引号 空
如果你想获取全部连接内容包括前缀用下面这句
((?:src|href|url|background)(?:\s*=\s*(["']?)))(?:[^\s"'>]*)[\s"']?
match获取的是 全部连接内容即 href="XXXXXX"
group 1 获取的是 前缀 href=" 注:上面语句可以分辨是 双引号 单引号 空
group 2 获取的是 包围符号 即 双引号 单引号 空
cancerser
2006-09-29
打赏
举报
回复
大概是这样
string a="<a href='ftp://topic.csdn.net/t/\'<t";
Regex rex=new Regex("(http|ftp)://.+(?='|\")");
a=rex.Match(a).Value;
//(http|ftp)这个自己扩充如(http|ftp|udp)
一般是以'或"结尾 如有其他也自己扩充
wshuangminlg
2006-09-29
打赏
举报
回复
帮LZ顶
petshop4
2006-09-29
打赏
举报
回复
+号多余了 不要
<(?<sun>(a|iframe)).*?>.*?</?\k<sun>.*?>
petshop4
2006-09-29
打赏
举报
回复
<(?<sun>(a|iframe)+).*?>.*?</?\k<sun>.*?>
里面只写了A和IFRAME的 别的自己添加吧
qinamao
2006-09-29
打赏
举报
回复
基本的如:<a href=*>**</a>
<iframe src=*><iframe>
<a href=# onclick=*>*</a>
等
股神
2006-09-29
打赏
举报
回复
up。。。
petshop4
2006-09-29
打赏
举报
回复
请把所有能被鼠标点击的例子都举出来
而不是让别人帮你做功课
正则表达式一文通
正则表达式简介 使用正则表达式的好处有哪些? 一个正则表达式就是一个描述规则的字符串,所以,只需要编写正确的规则,我们就可以让正则表达式引擎去判断目标字符串是否符合规则。 正则表达式是一套标准,它可以用于任何语言。Java 标准库的 java.util.regex包内置了正则表达式引擎,在 Java 程序
中
使用正则表达式非常简单。 举个例子:要判断用户输入的年份是否是20##年,我们先写出规则如下: 一共有 4 个字符,分别是:2,0,0~9任意数字,0~9任意数字。 对应的正则表达式就是:20\d\d
Java程序
中
使用正则表达式
一、 简介 正则表达式是一种用来匹配字符串的强有力的武器。Java内置了强大的正则表达式的支持。 问题: 如何判断字符串是否是有效的电话号码? 如何判断字符串是否是有效的电子邮件地址? 如何判断字符串是否是有效的时间? … 解决: 方法一、通过程序判断,为每个用例创建判断规则,然后用代码实现。-----繁琐,重复 方法二、使用正则表达式,正则表达式可以用字符串来描述规则,并用来匹配字符串。 // 例如,判断手机号位数是否为11位,是否由数字组成。我们可以正则表达式<\d{11}> boolean
Java 正则表达式
文章目录1. 正则表达式简介2.
正则表达式匹配
规则3. 复杂匹配规则4. 分组匹配5. 非贪婪匹配6. 搜索和替换 1. 正则表达式简介 正则表达式可以用字符串来描述规则,并用来匹配字符串。 举个例子:要判断用户输入的年份是否是 20## 年。 规则: 2,0,0~9任意数字,0~9任意数字 正则表达式: 20\d\d Java 字符串(Java 字符串用 \\ 表示 \): 20\\d\\d 代码: public static boolean is20xx(String str) { re
正则表达式和枚举类型
我们在上面的范围类的情况下我们知道在实际的开发
中
我们可能会碰到一些常见的需求比如:判断是否是数字,字母,大写字母等这些情况,对应的范围类正则比较常,所有在正则表达式
中
会给我们预定义一些有特殊含义的表达式。所谓元字符就是指那些在正则表达式
中
具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象
中
的出现模式。学习正则表达式的目的:通过正则表达式处理了字符串复杂的查找。枚举
中
的常量对象调用该方法结果是一样的,效率不高。是如何通过正则表达式来实现相关的操作的。
前端必经之路:带你读懂正则表达式
正则表达式简介 正则表达式的英文为 Regular Expression,在 JavaScript
中
用 RegExp 对象表示。正则表达式是一种专门用来处理字符串的规则,我们可以用正则表达式的 test() 接口去验证字符串是否符合某个规则,也可以用 exec() 接口将字符串
中
符合规则的内容捕获到。例如: 正则表达式的创建方式 在 JavaScript
中
,正则表达式有两种创建方式,分别是字面量创建方式和构造函数创建方式。 字...
C#
111,096
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章