正则表达式实例教学

Web Scraper 高级用法——利用正则表达式筛选文本信息 | 简易数据分析 17 这是简易数据分析系列的第 17 篇文章。 原文首发于博客园:Web Scraper 高级用法——利用正则表达式筛选文本信息 学习了这么多课,我想大家已经发现了,web scraper 主要是用来爬取文本信息的。 在爬取的过程中,我们经常会遇到一个问题:网页上的数据比较脏,我们只需要里面的一部分信息。比如说要抓取 电影的评价人数,网页中抓到的原始数据是 1926853人评价,但是我们期望只抓取数字... 阅读详情

1 正则表达式字符介绍

参考 正则表达式手册

2 常用符号演示

在线测试网址 http://tool.chinaz.com/regex/

^

匹配输入字符串的开始位置
在这里插入图片描述

*

匹配前面的子表达式零次或多次
在这里插入图片描述

{n,m}

m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次在这里插入图片描述

[a-z]

字符范围,也有[0-9]等
在这里插入图片描述

3 实例演示

实例1

要处理的需求:匹配SCC_VID_COLOR_SYS_XXX,然后在其后面增加一个字符串YYY

  1. 步骤1:找到指定位置
    在这里插入图片描述
    讲解:
字段SYS(_[A-Z]{1,}){1,2}(_[0-9]{1,}){0,},
讲解SYS字符串(_+大写字母+至少一个)+这样的结构一或两个(_+数字+至少一个)+这样的结构没有或者有

更精简的写法:SYS(_[A-Z0-9]*){1,}

  1. 步骤2:替换内容
    下面这样写,结果不符合预期在这里插入图片描述
    这里要引入分组方法,在正则表达式里面用小括号()代表一个组,在替换的时候使用\1、\2代表第一个第二个分组。(有些工具使用\n,有些使用$n代表),下面这样写才对
    在这里插入图片描述
  2. 转化为代码正则
    如果是代码里面需要写正则表达式,那么还是刚才那个在线工具,就能把正则转换为不同语言的代码http://tool.chinaz.com/tools/regexgenerate,当然熟练的也可以自己直接写。
    在这里插入图片描述

    实例2

原数据:
Attr Name=“SW_PowerCurrent” Alias=“SW_PowerCurrent” Ids=“0” Atoms=“100”
要求:这种行,把最后的100换成0
最终ok的shell脚本
sed -i -r “s/(SW_PowerCurrent.Atoms=").(”)/\10\2/" $xxx/cvte_ocsxml.xml

这里有几个坑:
1、前面()的集合,后面要用的时候不能用$1,要用/1
2、用了/1和/2之后,会报错\2 on `s’ command’s RHS,原因是之前只用了sed -i,需要增加-r
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)

正则表达式使用详解及使用实例 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。由此可见,正则表达式已经超出了某种语言或某个系统的局限,成为人们广为接受的概念和功能。   正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。   举例来说,正则表达式的一个最为普遍的应用就是用于验证用户在线输入的邮件地址的格式是否正确。如果通过正则表达式验证用户邮件地址的格式正确,用户所填写的表单信息将会被正常处理;反之,如果用户输入的邮件地址与正则表达的模式不匹配,将会弹出提示信息,要求用户重新输入正确的邮件地址。由此可见正则表达式在WEB应用的逻辑判断中具有举足轻重的作用。 立即下载

相关推荐

如何在高版本的ubuntu系统里安装gcc4.1.2

1、下载安装包,一共五个http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.1/,根据计算机系统位数   进行下载,64位下载amd64结尾的。开头分别是cpp-4.1_4.1.2、g++-4.1_4.1.2、gcc-4.1-base_4.1.2、gcc-     4.1_4.1.2、libstdc++6-4.1 2、使用sudo d

lsr_fighting的博客 1931

atom正则使用(空行,换行等)、atom正则查找替换(复用reg)

atom正则使用(空行,换行等)、atom正则查找替换(复用reg)

enthan809882的博客 1406

S32的进阶之路->3,S32DS新建/删除/导入工程

右击工程名,点击Delect进行工程删除。选中Delect project contents on disk则会彻底删除工程,不选中Delect project contents on disk工程文件会保存在工作空间中。在Improt Projects中选择工程所在文件夹,选中所需要导入的工程,勾选Copy projects into workspace。选中目标示例工程,点击Finish,完成创建工程。导入已有工程,右击右击Project Explorer空白处,选择Import。

LC_8575的博客 2221

undefined reference to error解决方法

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func'      关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。 1.  链接时缺失了相关目标文件(.o

zhujinghao09的专栏 3710

frp 内网渗透案例:端口转发 + 二级代理(深入理解 frp 在内网渗透中的技巧)

本文使用 vulnstack7 靶场作为测试环境,解释 frp 内网渗透特殊使用姿势,通过此案例来提高内网渗透能力。接下来的演示环境只做了以下修改。攻击者 vps 的 ip 修改为:192.168.72.162。DMZ 区域的 ubuntu 的 ip1 修改为:192.168.72.129。先引入问题,当我们控制了 DMZ 的 ubuntu 并且拿到第二层网络的 ubuntu 的 rce 后,会出现以下两个问题。如何搭建隧道让 ubuntu 反弹 shell 给攻击者 vps?

anddddoooo的博客 1763

HTML5网页基础设计——课程介绍专栏

案例: 参考代码: <!doctype html> <html> <head> <meta charset="utf-8"> <title>动手实践</title> <style> *{ margin: 0; padding: 0; font-size:14px; } dd{ width: 461px; height: 145px; margin: -4px; pad.

shengming_tutou的博客 4594

防SQL注入正则表达式的方法(菜鸟级可用)

首先了解一下什么是SQL注入(网络找的) SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。 但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要...

adpt74924的博客 7738

安卓端目标检测模型部署血泪史:从NCNN/TFLite/MNN全军覆没到Torchscipts终见光明

公司需在Android设备部署目标检测模型,要求: ✅ 实时检测速度≥15FPS ✅ 模型精度损失<5% ✅ 兼容中低端安卓设备👉 GitHub项目地址:pytorch/android-demo-app/ObjectDetection我已上传这份源码到csdn下载准备模型(必须走这步才能跑通安卓端源码)如果您没有设置PyTorch环境来运行该脚本,可以下载模型文件此处转到“android演示app/ObjectDetection/app/src/main/assets”文件夹,然后跳过此步骤的其余部分,直

机器学习、深度学习、强化学习、迁移学习 1567

正则表达式学习实例篇

         我们看看两个特别的字符:’^’   和   ‘$’   他们是分别用来匹配字符串的开始和结束,一下分别举例说明:      "^The ":   匹配以   "The "开头的字符串;      "of   despair$ ":   匹配以   "of   despair "   结尾的字符串;      "^abc$ ":   匹配以abc开头和以abc结尾的字符串,实际上是

潇湘博客 859

【DaVinci Configurator专题】-2-将CAN 2.0或CANFD Matrix的Arxml/DBC文件导入到CFG

共9页 目录 1 打开DaVinci Configurator,导入Arxml文件 2 解决导入Arxml文件后可能会出现的一些错误 3 验证CFG的配置 4 根据CFG的配置生成代码 5 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键词: Open the Input Files Assistant Complete update process Update ECU configurati

「汽车电子助手」的博客 6123

cefshap(C#)定义浏览器的右键菜单

菜单效果:复制(自带),搜索文本,打开链接,复制链接,刷新,检查,关于 public class MenuHandler : IContextMenuHandler { //public event Action<string> PopupRequest; void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrows

无线智能模块 可视DIY智能专家 1704

学习正则表达式入门,这一篇就够了,教学实例代码加解析

学习正则表达式入门,这一篇就够了 有大佬曾说:抽象层越高级,适用的范围就越广. 正则表达式在我看来就是这样,他把很多概念条件(比如开头匹配,末尾匹配,匹配数字等) 写为了变量(^,$,\d等),使得这些条件能够像常量一样去查找.

九黎AJ的博客 1353

[3.4]【机器人运动学MATLAB实战分析】PUMA560机器人逆运动学MATLAB计算

PUMA560是六自由度关节型机器人,其6个关节都是转动副,属于6R型操作臂。各连杆坐标系如图1,连杆参数如表1所示。本文对PUMA560机器人逆运动学进行分析并MATLAB计算

m0_72676510的博客 1947

爬取东方财富网-parsel教学篇(正则表达式的详细使用+实例)

本文原本是想通过分享一个爬取东方财富网案例,来介绍parsel解析库的使用,没想到硬生生的写成了正则表达式的详细使用,想学习正则表达式的的小伙伴们可以来看下。正则表达式是一种用于匹配字符串中字符组合的模式。不管是在Linux,windows系统中,亦或是python,javascript,go等等语言中,都有可能用到正则表达式来匹配字符串。它就像是一种高级的文本搜索和处理工具,可以帮助你在大量文本中快速找到符合特定规则的内容,或者对文本进行复杂的替换、提取等操作。

小小啊python的博客 1466

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jquery怎么用正则表达式保留数字和负数_正则表达式入门

本文是对正则表达式的笔记,附一些常用技巧1 - 前言1.1 目标30分钟让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。1.2 怎么学别被下面那些复杂的表达式吓倒,只要跟着我一步步来,你会发现正则表达式其实并没有想象中的那么困难。当然,如果看完教程之后发现懂了很多却啥都不记得,那也是很正常的——只有练习才能掌握。除了作为入门教程,本文还试图称为日常工作中的正则...

weixin_39991222的博客 882

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python网络爬虫之解析网页的正则表达式(爬取4k动漫图片)[三]

目录前言一、正则表达式的学习1、正则表达式的匹配工具2、正则表达式的样式3、正则表达式的案例二、爬取网页图片1、分析网页2、获取数据爬取妹子网的案例后记 前言 hello,大家好 本章可是一个重中之重了,因为我们今天是要爬取一个图片而不是一个网页或是一个json 所以我们也就不用用到selenium了,当然有兴趣的同学也一样可以使用selenium去爬取。 为了方便我们就用request请求就够了...

旺旺的博客 1414

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【正则表达式】

正则表达式又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。简介。

j8267643的博客 1529

正则表达式

本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 如何使用本教程 最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :) 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明...

weixin_30561425的博客 103

Python正则表达式

参考链接: 1、最快了解Python正则表达式 https://www.liaoxuefeng.com/wiki/1016959663602400/1017639890281664https://www.liaoxuefeng.com/wiki/1016959663602400/1017639890281664

黄岛主的博客 171

正则表达式30分钟入门教程 (学习正则表达式很好的文章)

 正则表达式30分钟入门教程本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教

870

正则表达式【第二卷】

正则表达式30分钟入门教程 版本:v2.33 (2013-1-10) 作者:deerchao转载请注明来源 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 网上的资源及本文参考文献 更新纪录...

weixin_30437481的博客 100

30分钟正则表达式

本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :)别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几

yizhiduxiu11的专栏 477

正则表达式30分钟入门教程

来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial。 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了如果有问题,再到这里来提出. 一些要说的话: 如果你没有正则表达式的基础,请跟着教程“一步步来”。请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂。当我告诉你这是“30分钟入

Alvin_Lam的专栏 332
上一篇: cpp/java 函数调用栈 堆栈打印方法
下一篇: linux cmake分别指定编译/运行时动态库链接路径
JCYAO_
博客等级 码龄7年 90粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值