浅析正则

正则表达式:又称规则表达式,英文名为Regular Expression,

               在代码中常简写为regex、regexp或RE

               正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本

通俗理解:正则表达式是用于进行文本匹配的工具

  1. 简单的正则表达式

                例:him,history,high,hi 在这个字符串中匹配出hi

                正则表达式:hi

                若要精确的匹配出hi,正则表达式:\bhi\b

                \b是正则表达式规定的一个特殊代码,我们把它叫做元字符,单词的开头或结尾,也就是单词的分界处,它只匹配一个位置

  1. 元字符:

代码

说明

.

匹配除换行符以外的任意字符

\w

匹配数字或字母或下划线或汉字

\s

匹配任意的空白符

\d

匹配数字

\b

匹配单词的开始或结束

^

匹配字符串的开始

$

匹配字符串的结束

  1. 字符转义'\':如果你想查找元字符本身的话,

比如你查找.,或者*,就出现了问题:你没法指定它们,

        因为它们会被解释成其它的意思。这时你就必须使用\来

        取消这些字符的特殊意义。因此,你应该使用\.和\*。

        当然,要查找\本身,你也得用\\.

  1. 常用的限定符(重复)

代码

说明

*  

重复零次或更多次

+  

重复一次或更多次

?  

重复零次或一次

{n}

重复n次

{n,}   

重复n次或更多次

{n,m}  

重复n到m次

  1. 反义

代码/语法

说明

               \W

匹配任意不是字母,数字,下划线,汉字的字符

                \S

匹配任意不是空白符的字符

                \D

匹配任意非数字的字符

                \B

匹配不是单词开头或结束的位置

                [^x]

匹配除了x以外的任意字符

                [^aeiou]

匹配除了aeiou这几个字母以外的任意字符

  1. 字符类

要想查找数字,字母或数字,空白是很简单的,因为已经有了对应这些字符集合的元字符,但是如果你想匹配没有预定义元字符的字符集合(比如元音字母a,e,i,o,u),应该怎么办?

很简单,你只需要在中括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.?!)(英文语句通常只以这三个标点结束)。

我们也可以轻松地指定一个字符范围,像[0-9]代表的含意与\d就是完全一致的:一位数字,同理[a-z0-9A-Z_]也完全等同于\w(如果只考虑英文的话)。

  1. 分组语法零宽断言

代码/语法

说明

(?=exp)

匹配exp前面的位置

                (?<=exp)

匹配exp后面的位置

                (?!exp)

匹配后面跟的不是exp的位置

                (?<!exp)

匹配前面不是exp的位置

例子:<img οnlοad="AutoResizeImage(100,100,this)"src="/Document/Title/Temp/2019-12-114bc5.png" >

  1. 匹配出:οnlοad="AutoResizeImage(100,100,this)"   

正则表达式onload.+(?=src)

  1. 匹配出:2019-12-114bc5.png  

正则表达式:(?<=Document/Title/Temp/).+(?=\")

  1. 贪婪与懒惰

贪婪:当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符这被称为贪婪匹配。

        懒惰:有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。

                如果将前面给出的限定符转化为懒惰匹配模式,只要在它后面加上一个问号?

         懒惰限定符:

                *?

重复任意次,但尽可能少重复

                +?

重复1次或更多次,但尽可能少重复

                ??

重复0次或1次,但尽可能少重复

                {n,m}?

重复n到m次,但尽可能少重复

                {n,}?

重复n次以上,但尽可能少重复

  1. 注释

小括号的另一种用途是能过语法(?#comment)来包含注释。例如:2[0-4]\d(?#200-249)|25[0-5](?#250-255)|[01]?\d\d?(?#0-199)。

要包含注释的话,最好是启用“忽略模式里的空白符”选项,这样在编写表达式时能任意的添加空格,Tab,换行,而实际使用时这些都将被忽略。启用这个选项后,在#后面到这一行结束的所有文本都将被当成注释忽略掉

(?<=

断言要匹配的文本的前缀

<(\w+)>

查找尖括号括起来的字母或数字(即HTML/XML标签)

)

前缀结束

.*

匹配任意文本

(?=

断言要匹配的文本的后缀

<\/\1>

查找尖括号括起来的内容:前面是一个"/",后面是先前捕获的标签

)

后缀结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字乡村和智慧农业的数字化转型是当前农业发展的新趋势,旨在通过应用数字技术,实现农业全流程的再造和全生命周期的管理服务。中国政府高度重视这一领域的发展,提出“数字中国”和“乡村振兴”战略,以提升国家治理能力,推动城乡融合发展。 数字乡村的建设面临乡村治理、基础设施、产业链条和公共服务等方面的问题,需要分阶段实施《数字乡村发展战略纲要》来解决。农业数字化转型的需求包括满足市民对优质农产品的需求、解决产销对接问题、形成优质优价机制、提高农业劳动力素质、打破信息孤岛、提高农业政策服务的精准度和有效性,以及解决农业融资难的问题。 数字乡村建设的关键在于构建“1+3+4+1”工程,即以新技术、新要素、新商业、新农民、新文化、新农村为核心,推进数据融合,强化农业大数据的汇集功能。数字农业大数据解决方案以农业数字底图和数据资源为基础,通过可视化监管,实现区域农业的全面数字化管理。 数字农业大数据架构基于大数据、区块链、GIS和物联网技术,构建农业大数据中心、农业物联网平台和农村综合服务指挥决策平台三大基础平台。农业大数据中心汇聚各类涉农信息资源和业务数据,支持大数据应用。信息采集系统覆盖市、县、乡、村多级,形成高效的农业大数据信息采集体系。 农业物联网平台包括环境监测系统、视频监控系统、预警预报系统和智能控制系统,通过收集和监测数据,实现对农业环境和生产过程的智能化管理。综合服务指挥决策平台利用数据分析和GIS技术,为农业决策提供支持。 数字乡村建设包括三大服务平台:治理服务平台、民生服务平台和产业服务平台。治理服务平台通过大数据和AI技术,实现乡村治理的数字化;民生服务平台利用互联网技术,提供各类民生服务;产业服务平台融合政企关系,支持农业产业发展。 数字乡村的应用场景广泛,包括农业生产过程、农产品流通、农业管理和农村社会服务。农业生产管理系统利用AIoT技术,实现农业生产的标准化和智能化。农产品智慧流通管理系统和溯源管理系统提高流通效率和产品追溯能力。智慧农业管理通过互联网+农业,提升农业管理的科学性和效率。农村社会服务则通过数字化手段,提高农村地区的公共服务水平。 总体而言,数字乡村和智慧农业的建设,不仅能够提升农业生产效率和管理水平,还能够促进农村地区的社会经济发展,实现城乡融合发展,是推动中国农业现代化的重要途径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值