href 一个正则表达式的解析 ? 号解析
ArrayList linkExternal = new ArrayList();
// Dodgy Regex will find *some* links
foreach (Match match in Regex.Matches(htmlData
, @"(?<=<(a|area)\s+href="").*?(?=""\s*/?>)"
, RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture)) {
// Regex matches from opening "quote
link = match.Value;
// find first space (ie no spaces in Url)
int spacePos = link.IndexOf(' ');
// or first closing quote (NO single quotes)
int quotePos = link.IndexOf('"');
int chopPos = (quotePos<spacePos?quotePos:spacePos);
if (chopPos > 0) {
// chopPos if quote or space first the at URL end
link = link.Substring(0,chopPos);
}
if ( (link.Length > 8) &&
(link.Substring(0, 7).ToLower() == "http://") ) {
// Assumes all links beginning with http:// are _external_
linkExternal.Add(link) ;
} else {
// otherwise they're "relative"/internal links
// so we concatenate the base URL
link = startingUrl + link;
linkLocal.Add(link);
}
}
.*? 非贪婪或最小匹配.
?<= 正向引用不包含在匹配值里
?= 同上.. (不过上面的哪个没有了<号就会造成不同的结果了)
"" 因为前面加了个@ 所以这边的""变成了"的意思.
(a|area) 其它的任意一个
RegexOptions.ExplicitCapture 指得没有命名的不能捕获..其它?<=和?=以经代替了它的作用了
另一种方法的捕狱.括号加命名 (?<banyi>.*?)到时候就可以match.Groups["banyi"].Value这种形式来获得了 Replace的时候也可以指定的
?的另一个作用就是 匹配0次或一次了 +号是一次或多次*号是0次或多次
转载于:https://www.cnblogs.com/lovebanyi/archive/2005/10/29/264478.html
href 一个正则表达式的解析 ? 号解析相关推荐
- 正则表达式 bs4解析 xpath解析
#正则 #bs4 解析 #Xpath解析 正则 re import re# list = re.findall(r'\d{11}','我的电话号码是:18047653655,女朋友的电话号码是:15 ...
- 【6】爬虫介绍/准备工作/构建流程/获取数据/BeautifulSoup/Re(正则表达式)/正则提取/标签解析/保存数据到excel
爬虫介绍/准备工作/构建流程/获取数据/BeautifulSoup/Re(正则表达式)/正则提取/标签解析/保存数据到excel 更新时间:2021.9.16 vedio:15,16,17,18,19 ...
- 爬虫之网络数据解析的三种方式---正则表达式、XPath数据解析库、BeautifulSoup数据解析库
1.正则表达式 爬虫的四个主要步骤: 明确目标(要知道你准备取哪个范围或者网站上取搜索) 爬(将所有网站的内容全部爬下来) 取(取掉对我们没用的数据) 处理数据(按照我们想要的方式存储和使用) 什么是 ...
- python编写登录_通过Python编写一个简单登录功能过程解析
通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...
- RabbitMQ端口号解析
一.端口号解析 1.4369 (epmd), 25672 (Erlang distribution) 2.5672, 5671 (AMQP 0-9-1 without and with TLS) 3. ...
- RabbitMQ 端口号解析
转自:https://www.cnblogs.com/liuxingke/articles/9889517.html 端口号解析 12345 - 4369 (epmd), 25672 (Erlang ...
- java获取object属性值_java反射获取一个object属性值代码解析
有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...
- boost::spirit模块实现一个类似于 XML 的小型解析器的测试程序
boost::spirit模块实现一个类似于 XML 的小型解析器的测试程序 实现功能 C++实现代码 实现功能 boost::spirit模块实现一个类似于 XML 的小型解析器的测试程序 C++实 ...
- boost::spirit模块实现一个类似于 XML 的小型解析器,Karma 用于打印生成的 AST
boost::spirit模块实现一个类似于 XML 的小型解析器,Karma 用于打印生成的 AST 实现功能 C++实现代码 实现功能 boost::spirit模块实现一个类似于 XML 的小型 ...
最新文章
- Android学习笔记--动画特效
- 编程python用什么软件比较好-新手入门Python编程的8个实用建议
- SCCM 2012系列之新特性概览一:SCCM 2012安装选项和控制台新界面预览
- 把接口作为函数的参数,那么任何实现了接口的类的实例都可以作为此函数的参数传递...
- Emacs中使用Forms-mode以表格形式展示/编辑简单的文本数据
- fastapi jinja2_(入门篇)Python框架之FastAPI——一个比Flask和Tornado更高性能的API 框架
- Kibana 的安装(Windows版本)新手入门
- 2.窗口大小改变和侧边栏收缩的时候,echarts图表的自适应
- Redis单机数据库实现
- 蓝桥杯青少年创意编程大赛题解:STEMA
- 密码攻防系列文章27-web后台登录口令暴力破解及防御
- PS制作3D立体字步骤教程
- 【MYSQL】mysql.sock连接问题
- iOS应用性能调优的建议和技巧--中高级--王朋
- Redux-前端开发者的福音
- SEO优化:什么是SEO链轮?站群与博客群的优劣比较!
- 酷我音乐mp3歌曲URL地址提取(作背景音乐)
- 手工彻底清除各种顽固性 Trojan Horse ***的方法
- BeanFactory与ApplicationContext的区别
- 「数据治理那点事」系列之三:不忘初心方得始终,数据质量管理要稳住!
热门文章
- 超简单的Oracle 数据库安装教程
- 面对不可避免的故障,我们造了一个“上帝视角”的控制台
- K8s 资源全汇总 | K8s 大咖带你 31 堂课从零入门 K8s
- 一文读懂分布式架构知识体系(内含超全核心知识大图)
- 下列哪些是java语言的条件执行语句_13春福师《JAVA程序设计》在线作业二
- h5 video 手机 显示第一帧_解决h5嵌入app后video标签poster不能显示视频第一帧(表现为空白)...
- 计算机系统基础期中考试,计算机系统基础第二次作业.docx
- 手机投电脑_这七个电脑软件,用过的才知道多好用!
- 【百家稷学】卷积神经网络的前世、今生与未来(武汉工程大学技术分享)
- 【GAN优化】GAN优化专栏上线,首谈生成模型与GAN基础