由正则表达式提取 html action的属性值,谈零宽断言
因为实验需要从2w个网页中提取action中的链接,显然用bs4去解析dom树,再去逐个定位form、action。是十分花费时间的。
故笔者就利用正则表达式去解决这一个问题,
- 我第一步想法是匹配以 action=“ 开头的 “ 结尾字符串
- 用 aciton.*?" 就可以匹配出来了
- 但是这就遇到拦路虎了,因为笔者也是第一次动手写正则,就很菜,什么也不懂
- 在查了相关资料后,多方尝试,直接崩溃,
- 不玩了,去打王者了
- 在经历过王者连败后,战士依旧归来
- 发现了关于正则两个很有用的知识点
- 零宽断言
- 负向零宽断言
举个栗子:
<form
action="http://websitesmail.att.com/ajax_login/redirect.php"
method="post"
id="webmail_form">
- 首先这里用到了负向零宽断言,具体的术语名字更长,在我理解看来,就是你所需要的位置,其前方可以满足你的表达式,故第一步结果如下
<?<=action=">
- 现在咱们有了要匹配字段前面的要求,接下来再加上表示你所需要字符串的语法
<?<=action=">.*?
- 最后我们是要用“去收尾的,故用到类零宽断言,故最终的结果就是这样
(?<=action=").*?(?=")
这里我谈一下个人对零宽断言的一点点理解,
- 零宽断言分为正向反向
- 其不同于正则里面的开始符与结束符
- 其区别在于开始符与结束符,其最终结果是包含了你所指定的开始和结束的字符(串)
- 但是零宽断言的最终匹配结果是不包含你指定的定位符的。
- 故这个就很好的解决了,我只想要action里面的链接,而不想附带别的其余东西
希望有帮到你,谢谢
由正则表达式提取 html action的属性值,谈零宽断言相关推荐
- 给定字符串提取姓名(字符串、list、re“零宽断言”)
Python 官网: https://www.python.org/ 这里,才 python 前沿.可惜是英文原版.所以,我要练习英文阅读.
- javascript 正则表达式-零宽断言
http://buzheng.org/blog/regex-zero-width-assertion/ 正则表达式里面比较高级的应用就属于零宽断言了.那么什么是零宽断言呢?拆分法从字面上分析一下,零宽 ...
- Selenium提取数据之标签对象提取文本内容和属性值
Selenium提取数据之标签对象提取文本内容和属性值 find_element仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法 对元素执行点击操作element.clic ...
- grep零宽断言正则表达式
一.grep零宽断言: (匹配宽度为零,满足一定的条件/断言) 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< \> 这样的锚定作用, ...
- JAVASCRIPT 正则表达式学习--基础与零宽断言(转自司徒正美)
元字符 ( [ { \ ^ $ | ) ? * + . 预定义的特殊字符 字符 正则 描述 \t /\t/ 制表符 \n /\n/ 制表符 \r /\r/ 回车符 \f /\f/ 换页符 \a /\a ...
- Python正则表达式之零宽断言(4)
文章目录 声明 | ^ $ \A \Z \b \B 分组 反向引用 注意 声明 有些元字符它们不匹配任何字符,只是简单地表示成功或失败,因此这些字符也称之为零宽断言.例如 \b 表示当前位置位于一个单 ...
- 正则表达式零宽断言详解
在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了. 一.基本概念: 零宽断言正如它的名字一样,是一种零宽度的匹配,它匹配到的内容不会保存 ...
- 正则表达式之零宽断言
介绍: 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< \> 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言), ...
- php 零宽断言,正则表达式之零宽断言
介绍: 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< \> 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言), ...
最新文章
- UIView-Maker,实现UIView的clone操作和统一样式模型
- 在sae上编译代码是所遇到的问题
- 作用域,上下文,闭包
- 高级指引——自定义节点
- 微软Azure storage account的connection string
- 花了一个深夜,才用C语言写了一个2048游戏雏形
- MySQL日期格式符
- 定制textField
- 现在的计算机电源都要经过,电脑待机后必须关闭电源才能开启
- Python 爬取 20 万条评论,告诉你周杰伦新歌为啥弄崩 QQ 音乐?
- ubuntu-16.04安装程序报错 you might want to run 'apt-get -f install' to correct these
- ndows外壳公用dll,Windows外壳公用DLL已停止工作
- www.sohu.com/a/162498139_165716
- 华为手机系统更新成鸿蒙,如何将自己的华为手机升级成鸿蒙系统
- 程序员女朋友都是在哪找的?
- pmos管驱动原理图
- 3.28layui添加商品功能和显示所有商品功能
- AUTOCAD——打断命令、合并命令
- 什么是keep-alive?
- 从内地或海外前往香港的步骤攻略(2023.2.更新)