正则表达式 订阅
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。 展开全文
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
信息
代码简写
regex、regexp或RE
行业归属
计算机科学
作    用
用来检索、替换那些符合某个模式(规则)的文本
中文名
正则表达式
外文名
Regular Expression
别    称
规则表达式
正则表达式概念
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
收起全文
精华内容
参与话题
问答
  • 正则表达式验证Ip地址(绝对正确)

    万次阅读 多人点赞 2016-02-04 16:39:51
    之前一直不太会写正则表达式,很多要用到正则表达式的都直接百度,像上次要用正则表达式验证是否是合法的ip地址,然后就上网找,结果就是没找到一个对的,今天就为大家贡献一下,写个对的,并做一下解析。...

    之前一直不太会写正则表达式,很多要用到正则表达式的都直接百度,像上次要用正则表达式验证是否是合法的ip地址,然后就上网找,结果就是没找到一个对的,今天就为大家贡献一下,写个对的,并做一下解析。(建议大家还是去看书去规范的学一下,不要直接百度,不然都是坑)。

    iPv4的ip地址都是(1~255).(0~255).(0~255).(0~255)的格式

    我这里的写法没有考虑两种情况,一是172.00.01.3这种,前面以零开头,或者多个零的这种情况,二是本网络地址,如果想支持,可根据下面的解释进行扩展。

    下面给出相对应的正则表达式:

    "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."

    +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

    +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

    +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$"

    上面的一个不漏就是正确的验证ip的正则表达式,简单的讲解一下

    \d表示0~9的任何一个数字

    {2}表示正好出现两次

    [0-4]表示0~4的任何一个数字

    | 的意思是或者

    ( )上面的括号不能少,是为了提取匹配的字符串,表达式中有几个()就表示有几个相应的匹配字符串

    1\\d{2}的意思就是100~199之间的任意一个数字

    2[0-4]\\d的意思是200~249之间的任意一个数字

    25[0-5]的意思是250~255之间的任意一个数字

    [1-9]\\d的意思是10~99之间的任意一个数字

    [1-9])的意思是1~9之间的任意一个数字

    \\.的意思是.点要转义(特殊字符类似,@都要加\\转义)

    说到这里应该已经很清楚的知道了上面的正则表达式的意思。

    展开全文
  • hive 正则表达式详解

    万次阅读 2016-04-09 18:56:22
    hive中的正则表达式还是很强大的。数据工作者平时也离不开正则表达式。对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。1.regexp语法: A REGEXP B 操作类型: strings 描述: 功能与RLIKE相同...

    项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
    欢迎大家star,留言,一起学习进步

    hive中的正则表达式还是很强大的。数据工作者平时也离不开正则表达式。对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。

    1.regexp

    语法: A REGEXP B
    操作类型: strings
    描述: 功能与RLIKE相同

    select count(*) from olap_b_dw_hotelorder_f where create_date_wid not regexp '\\d{8}'
    

    与下面查询的效果是等效的:

    select count(*) from olap_b_dw_hotelorder_f where create_date_wid not rlike '\\d{8}';
    

    2.regexp_extract

    语法: regexp_extract(string subject, string pattern, int index)
    返回值: string
    说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

    hive> select regexp_extract('IloveYou','I(.*?)(You)',1) from test1 limit 1;
    Total jobs = 1
    ...
    Total MapReduce CPU Time Spent: 7 seconds 340 msec
    OK
    love
    Time taken: 28.067 seconds, Fetched: 1 row(s)
    
    hive> select regexp_extract('IloveYou','I(.*?)(You)',2) from test1 limit 1;
    Total jobs = 1
    ...
    OK
    You
    Time taken: 26.067 seconds, Fetched: 1 row(s)
    
    hive> select regexp_extract('IloveYou','(I)(.*?)(You)',1) from test1 limit 1;
    Total jobs = 1
    ...
    OK
    I
    Time taken: 26.057 seconds, Fetched: 1 row(s)
    
    hive> select regexp_extract('IloveYou','(I)(.*?)(You)',0) from test1 limit 1;
    Total jobs = 1
    ...
    OK
    IloveYou
    Time taken: 28.06 seconds, Fetched: 1 row(s)
    
    hive> select regexp_replace("IloveYou","You","") from test1 limit 1;
    Total jobs = 1
    ...
    OK
    Ilove
    Time taken: 26.063 seconds, Fetched: 1 row(s)
    

    3.regexp_replace

    语法: regexp_replace(string A, string B, string C)
    返回值: string
    说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数。

    hive> select regexp_replace("IloveYou","You","") from test1 limit 1;
    Total jobs = 1
    ...
    OK
    Ilove
    Time taken: 26.063 seconds, Fetched: 1 row(s)
    
    hive> select regexp_replace("IloveYou","You","lili") from test1 limit 1;
    Total jobs = 1
    ...
    OK
    Ilovelili
    

    参考链接:

    1. https://www.iteblog.com/archives/1639.html hive字符串处理函数,比较全
    展开全文
  • 正则表达式

    万次阅读 多人点赞 2018-07-08 11:15:29
    一、概念正则表达式()

    在很多技术领域(如:自然语言处理,数据存储等),正则表达式可以很方便的提取我们想要的信息,所以正则表达式是一个很重要的知识点!

    一、概念

    正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到文本匹配目的工具。

    正则表达式目前被集成到了各种文本编辑器/文本处理工具当中

    二、应用场景

    (1)验证:表单提交时,进行用户名密码的验证。

    (2)查找:从大量信息中快速提取指定内容,在一批url中,查找指定url。

    (3)替换:将指定格式的文本进行正则匹配查找,找到之后进行特定替换。

    三、基本要素

    (1)字符类

    (2)数量限定符

    (3)位置限定符

    (4)特殊符号

    注意:正则表达式基本是与语言无关的,我们可以结合语言/工具与正则表达式进行文本处理,在后面的博客中,我将使用grep来进行验证。(grep是一款Linux下按行匹配文本的工具,如下,使我们常使用的两个选项)

    -E:使用扩展正则匹配

    --color:将匹配得到的内容进行语法高亮

    1.字符类


    举例如下:

    例1:


    注意:1.grep采用的贪心匹配,它会匹配当前行中的所有匹配内容

    2.echo $?表示是否匹配成功(如果成功返回值为0,不成功返回值为1)

    例2:


    例3:


    例4:


    例5:


    2.数量限定符


    举例如下:

    例1:


    例2:


    由此,我们可以看出,“前面的单元”默认是指?或+前面的字符

    例3:


    例4:


    例5:


    例6:


    注意:该结果为匹配失败,在相关文档中并未出现,应该啊是错误或者废弃的用法

    例7:


    3.位置限定符


    举例如下:

    例1:


    例2:


    例3:


    例4:


    例5:


    例6:


    4.特殊符号


    举例如下:


    假如我们去掉-E选项,会有什么现象呢?


    此时,不难发现,去掉-E选项之后没有进行正常的正则匹配,这种现象需要我们引入如下的两个概念!

    5.基本正则表达式&扩展正则表达式

    区别:正则表达式的扩展正则(Extended规范)和基本正则(Basic规范)下,有些字符应该解释为普通字符,要表示上述特殊含义则需要加“\”转义字符。反之,在扩展规范下,应被理解为特殊含义,要取其字面值,也要对其进行“\”转义。

    因此,grep工具带上-E选项,表示使用扩展正则来进行匹配,若没有该选项,则表示使用基准正则来进行匹配。

    对于上述的问题,我们举例如下:

    例1:


    例2:当目标字符串当中本身就包含了字符,要想进行正则匹配,应该这样做:


    例3:


    5.其他普通字符集及其替换


    举个例子:


    综上,正则表达式有以下三个分类:

    (1)基本正则表达式:Basic即BPEs

    (2)扩展正则表达式:Extended即EREs

    (3)Perl的正则表达式:PREs

    因此,当grep指令不跟任何参数时,表示要使用BREs,后面跟“-E”表示使用EREs,后面跟“-P”参数,表示使用PREs

    四、贪婪模式与非贪婪模式

    1.贪婪模式:正则表达式匹配时,会尽量多的匹配符合条件的内容

    举例如下:


    注意:grep默认采用贪婪匹配,可能会对我们的测试结果造成干扰,大家可以上网使用“正则在线转换工具”进行测试

    2.非贪婪模式:正则表达式匹配时,会尽量少的匹配符合条件的内容,也就是说,一旦发现匹配符合要求,立马就匹配成功,而不会继续匹配下去(除非有g,开启下一组匹配)

    举例如下:


    五、零宽断言

    1.所谓断言,是用来声明一个应该为真的事实。在正则表达式中,只有当断言为真时才会继续进行匹配。

    2.零宽断言:像用于查找某些内容之前或者之后的东西,其中一些特殊字符如“\b、^、$”等用于指定一个位置,这个位置应满足一定的条件。

    3.分类:

    (1)零宽度正预测先行断言(?=exp)

    它断言自身出现的位置之后能匹配的表达式exp。如:\b\w+(?=ing\b),表示匹配以ing结尾的单词的前面的部分(除ing以外的部分)。当我们要查找“I'm singing while you're dancing.”时,它会匹配sing和danc

    举例如下:


    (2)零宽度正回顾后发断言(?>=exp)

    它断言自身出现的位置的前面能匹配的表达式exp。如:(?<=\bre)\w+\b会匹配以re开头的单词的后半部分(除er以外的部分),例如:在查找“reading a book”时,它匹配ading

    举例如下:


    六、简单练习

    1.手机号码


    2.非零的正整数


    3.非零开头的最多带两位小数的数字


    4.由数字和26位字母组成的字符串


    5.QQ号,从10000开始


    6.IP地址

    \d+\.\d+\.\d+\.\d+

    7.判断账号是否合法

    ^[a-zA-Z0-9][a-zA-Z0-9_]{4,15}$

    8.日期格式

    ^\d{4}-\d{1,2}-\d{1,2}

    正则表达式的学习就到这里结束啦,如果有小伙伴没有看明白的,可以上网查询正则的更多知识点!


    展开全文
  • 正则表达式匹配任意字符

    万次阅读 多人点赞 2016-08-04 14:08:02
    最开始以为.* 可以匹配任意字符,后来发现有问题,匹配不了换行符\n 查了下资料,用[\s\S]*匹配可以  解释:\s空白符,\S非空白符,所以[\s\S]是任意字符

    最开始以为.* 可以匹配任意字符,后来发现有问题,匹配不了换行符\n

    查了下资料,用[\s\S]*匹配可以 

    解释:\s空白符,\S非空白符,所以[\s\S]是任意字符

    展开全文
  • 1、正则表达式匹配 ~ 区分大小写匹配 ~* 不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 ^ 以什么开头的匹配 $ 以什么结尾的匹配 转义字符。可以转. * ?等 * 代表任意字符 2、文件及目录匹配 ...
  • JavaScript正则表达式总结 --- 常用的JavaScript正则表达式需求总结 正则表达式的整理思路原理是一样的,但是不同的语言是有差别的,java和JavaScript中的正则表达式会有些差别。 未完待续。。。 2、JavaScript...
  • 史上最全的正则表达式-匹配中英文、字母和数字

    万次阅读 多人点赞 2017-08-29 20:31:28
    在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理。 1、匹配中文:[\u4e00-\u9fa5] 2、英文字母:[a-zA-Z] 3、数字:[0-9] 4、匹配...
  • 正则表达式简单语法及常用正则表达式

    万次阅读 多人点赞 2018-04-17 14:39:59
    基本符号:^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)$ 表示匹配字符串的结束位置* 表示匹配 零次到多次+ 表示匹配 一次到多次 (至少有一次)?...
  • 中文正则表达式匹配-正则中文匹配

    万次阅读 多人点赞 2018-05-30 17:13:44
    原文链接:...\w匹配的仅仅是中文,数字,字母,对于国人来讲,仅匹配中文时常会用到,见下匹配中文字符的正则表达式: [\u4e00-\u9fa5]或许你也需要匹配双字节字符,中文也是双...
  • Python-正则表达式

    千人学习 2017-08-21 14:17:41
    正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本...
  • 问题: 用正则表达式表示大于等于100 或者小于100的所有数字,包括小数 我写的有点问题/^[0-9]{3}[0-9\.]{0,}$ 如果我写啦100.2.3这个就验证不出来 谢谢
  • 利用正则表达式过滤 所有单词中筛选值包含两个p一个a一个e一个l的单词 比如 apple aplep palep apelp
  • 正则表达式-邮箱有效性验证

    万次阅读 多人点赞 2017-11-12 14:33:27
    邮箱有效性需满足的验证逻辑
  • 正则表达式在线自动生成器

    万次阅读 2014-08-19 19:06:24
    正则表达式的强大众所周知,它令程序员的头痛程度也数一数二的。最近我发现了一个网站,txt2re,能够自动为你生成正则表达式,而且很灵活,在这里推荐一下。 网址: http://www.txt2re.com/ http://txt2re.com/ ...
  • 正则表达式 正则表达式匹配年月

    万次阅读 2018-06-13 11:42:30
    正则表达式 注意^和$的使用 ^表示开始 严格匹配按规定的正则开始 否则返回false$表示结束 严格匹配按规定的正则结束 否则返回false只匹配年: /^\d{4}$/ 只匹配年-月:/^\d{4}-((0([1-9]))|(1(0|2)))$/只匹配年...
  • JS正则表达式,在表单验证等方面都有应用,下面结合学习经过,整理一些初学 者所需要掌握的一些基本JS正则规则: 1.正则表达式基础语法练习 (1)校验邮政编码(由六位组成) 这里要注意,不能写成/\d{6...
  • 正则表达式 价格正则表达式 非负整数正则表达式 正整数正则表达式 //判断是否为价格:校验的价格为大于或等于0的数,最多有两位小数.如果是则返回true,否则返回false. function isPrice(price){ var reg = /...
  • 文章目录MySQL 正则表达式,MYSQL 通过正则表达式进行匹配查询1、如何使用,语法2、regexp 模式3、几个demo MySQL 正则表达式,MYSQL 通过正则表达式进行匹配查询 1、如何使用,语法 select * from 表名 where 字段...
  • 正则表达式与扩展正则表达式

    千次阅读 2018-04-03 11:32:52
    后来了解到sed是基础的正则表达式,而我用的扩展正则表达式以及正则表达式的扩展,很容易混淆,选择记录一下 BRE: basic regrular expression ERE: extended regrular expression BRE ERE 含义 ^$ ^$ ...
  • Java进阶(九)正则表达式

    万次阅读 2015-07-31 14:45:13
    java正则表达式 序 由于项目中使用到了利用正则表达式进行表单的校验,回想一下正则表达式的内容,忘得也差不多了,俗话说:“温故而知新,可以为师矣”。今天就简单的温故一下正则表达式,希望可以获得新的收获。 ...
  • JS利用正则表达式校验手机号 绪 由于项目需求,需要在前端实现手机号码的校验。当然了,对于基本的格式校验应该放在客户端进行,而不需要再将待校验的手机号发送至服务端,在服务端完成校验,然后将校验结果返回给...
  • 正则表达式 IP 正则表达式 合法IP

    千次阅读 2018-10-26 19:03:36
    正则表达式验证Ip地址(绝对正确) https://blog.csdn.net/u012806692/article/details/50635590    为了以后的不时之需。 适用于Java 语言。 String validIpRegex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1...
  • 常用js正则表达式 Javascript正则表达式实战手册

    千次阅读 多人点赞 2018-08-13 00:22:33
    最近做了几个项目,发现正则表达式用得越来越多了。我个人的习惯是,能通过查手册获取的东西绝不死记硬背,虽然大多数技术网站都搜罗了一堆Javascript正则表达式的用法,但我还是想整理一份更有实战意义的手册。说白...
  • 前言 遇到问题记录下来,免得再次...今天在做python正则表达式时,要匹配全部内容,包括换行符。无法得到正确答案,已解决。 解决方案 . 是匹配除过\n 之外的全部自符 用[\d\D] 匹配所有字符。或者是[\s\S] ,...

空空如也

1 2 3 4 5 ... 20
收藏数 211,419
精华内容 84,567
关键字:

正则表达式