- 性 质
- 汉语词汇
- 外文名
- zhèngzé
- 出 自
- 《楚辞·离骚》等
- 中文名
- 正则
-
中文正则表达式匹配-正则中文匹配
2018-05-30 17:13:44原文链接:http://caibaojian.com/zhongwen-regexp.html这篇文章主要讲如何使用正则匹配中文字符,中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面一起看看这个中文正则表达式是怎么样的。\w匹配的仅仅...原文链接:http://caibaojian.com/zhongwen-regexp.html
这篇文章主要讲如何使用正则匹配中文字符,中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面一起看看这个中文正则表达式是怎么样的。
\w匹配的仅仅是中文,数字,字母,对于国人来讲,仅匹配中文时常会用到,见下
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
或许你也需要匹配双字节字符,中文也是双字节的字符
匹配双字节字符(包括汉字在内):[^\x00-\xff]
注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
更多常用正则表达式匹配规则:
英文字母:[a-zA-Z] 数字:[0-9]
匹配中文,英文字母和数字及_:
//code from http://caibaojian.com/zhongwen-regexp.html ^[\u4e00-\u9fa5_a-zA-Z0-9]+$
同时判断输入长度:·
[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10} ^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$
1、一个正则表达式,只含有汉字、数字、字母、下划线不能以下划线开头和结尾:
^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$
其中:
^ 与字符串开始的地方匹配
(?!_) 不能以_开头 (?!.*?_$) 不能以_结尾 [a-zA-Z0-9_\u4e00-\u9fa5]+ 至少一个汉字、数字、字母、下划线
$ 与字符串结束的地方匹配
放在程序里前面加@,否则需要\\进行转义 @"^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$" (或者:@"^(?!_)\w*(?<!_)$" 或者 @" ^[\u4E00-\u9FA50-9a-zA-Z_]+$ " )
2、只含有汉字、数字、字母、下划线,下划线位置不限:
^[a-zA-Z0-9_\u4e00-\u9fa5]+$
3、由数字、26个英文字母或者下划线组成的字符串
^\w+$
4、2~4个汉字
@"^[\u4E00-\u9FA5]{2,4}$";
5、
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
用:(Abc)+ 来分析: XYZAbcAbcAbcXYZAbcAb
来源:前端开发博客 -
正则表达式验证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:22hive中的正则表达式还是很强大的。数据工作者平时也离不开正则表达式。对此,特意做了个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
参考链接:
- 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}
正则表达式的学习就到这里结束啦,如果有小伙伴没有看明白的,可以上网查询正则的更多知识点!
-
pytorch实现L2和L1正则化regularization的方法
2019-03-14 16:44:27pytorch实现L2和L1正则化的方法 目录 目录 pytorch实现L2和L1正则化的方法 1.torch.optim优化器实现L2正则化 2. 如何判断正则化作用了模型? 2.1 未加入正则化loss和Accuracy 2.1 加入正则化loss和Accuracy ... -
Java进阶(九)正则表达式
2015-07-31 14:45:13java正则表达式 序 由于项目中使用到了利用正则表达式进行表单的校验,回想一下正则表达式的内容,忘得也差不多了,俗话说:“温故而知新,可以为师矣”。今天就简单的温故一下正则表达式,希望可以获得新的收获。 ... -
nginx入门必备收藏:nginx 正则表达式匹配详解
2013-06-20 16:38:371、正则表达式匹配 ~ 区分大小写匹配 ~* 不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 ^ 以什么开头的匹配 $ 以什么结尾的匹配 转义字符。可以转. * ?等 * 代表任意字符 2、文件及目录匹配 ... -
JavaScript进阶教程(7)-正则表达式
2020-10-24 23:07:20正则表达式 了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在... -
网络爬虫——正则表达式语法
2020-02-05 10:48:51正则表达式基础讲解 一、什么是正则表达式 在网络爬虫将网页内容爬取的时候,有一个关键的步骤就是对我们关注的信息进行提取,正则表达式就是用于信息筛选提取的强大工具,并且学习简单,所以建议大家掌握。 ... -
正则化、正则项、正则问题的快速理解
2019-02-21 16:52:38在看这篇文章前,需要了解两方面知识 能量函数... ... 正则化用途:避免过拟合问题 如何用? 把正则项(L-1或者L-2范数)加入到能量函数中一起运算,和惩罚函数类似。 惩罚?→能量... -
AngularJS进阶(十三)JS利用正则表达式校验手机号
2015-12-01 20:25:06JS利用正则表达式校验手机号 绪 由于项目需求,需要在前端实现手机号码的校验。当然了,对于基本的格式校验应该放在客户端进行,而不需要再将待校验的手机号发送至服务端,在服务端完成校验,然后将校验结果返回给... -
L1正则化和L2正则化
2019-03-15 14:31:35L1正则化和L2正则化:2. L1正则化和L2正则化的作用:3. 一些问题理解L1正则化的稀疏作用如何理解?L2正则化为什么不会稀疏?L2正则化为何可以防止过拟合?L1正则化在哪种情况下可以防止过拟合? 1. L1正则化和L2正则... -
正则表达式 正则表达式匹配年月
2018-06-13 11:42:30正则表达式 注意^和$的使用 ^表示开始 严格匹配按规定的正则开始 否则返回false$表示结束 严格匹配按规定的正则结束 否则返回false只匹配年: /^\d{4}$/ 只匹配年-月:/^\d{4}-((0([1-9]))|(1(0|2)))$/只匹配年... -
中文正则表达式匹配 正则中文匹配
2019-05-06 10:46:14如何使用正则匹配中文字符?中文正则表达式的匹配规则不像其他正则规则一样容易记住,所以小编写了这篇博客,供参考! \w匹配 \w匹配的仅仅是中文,数字,字母,对于国人来讲,仅匹配中文时常会用到,见下 匹配中文... -
正则表达式与扩展正则表达式
2018-04-03 11:32:52最近用到sed时,用正则表达式总是出错 后来了解到sed是基础的正则表达式,而我用的扩展正则表达式以及正则表达式的扩展,很容易混淆,选择记录一下 BRE: basic regrular expression ERE: extended regrular ... -
正则化的作用以及L1和L2正则化的区别
2019-08-21 20:06:160 正则化的作用 正则化的主要作用是防止过拟合,对模型添加正则化项可以限制模型的复杂度,使得模型在复杂度和性能达到平衡。 常用的正则化方法有L1正则化和L2正则化。L1正则化和L2正则化可以看做是损失函数的惩罚... -
MySQL 正则表达式,MYSQL 通过正则表达式进行匹配查询
2019-04-15 21:03:27文章目录MySQL 正则表达式,MYSQL 通过正则表达式进行匹配查询1、如何使用,语法2、regexp 模式3、几个demo MySQL 正则表达式,MYSQL 通过正则表达式进行匹配查询 1、如何使用,语法 select * from 表名 where 字段... -
编译原理--正则文法与正则表达式
2019-04-01 06:59:04对任何正则文法G,存在定义同一语言的正则表达式r 对任何正则表达式r,存在生成同一语言的正则文法G 正则文法到正则表达式的转换 将正则文法中的每个非终结符表示成关于它的一个正则表达式方程,获得一个联立方程... -
L1正则和L2正则的区别详解
2019-09-26 21:41:16正则化本身是一种参数范数惩罚,即权重衰减。 L2参数正则化 L2参数正则化策略通过向目标函数添加一个正则项Ω(θ=12∥w∥22)\Omega(\theta=\frac{1}{2}\Vert w\Vert_{2}^{2})Ω(θ=21∥w∥22),来使权重更加... -
C++正则表达式
2019-05-16 14:24:22目录C++正则总述ECMAScript支持的正则具有特殊意义的元字符量词元字符C++支持的正则C++使用正则匹配与否捕获更高级的捕捉捕捉的同时生成新串参考资料 C++正则 总述 正则是一种规则,它用来匹配(进而捕获、替换)... -
L1正则和L2正则的比较分析
2019-05-28 23:31:331.L1正则和L2正则的比较分析详解 2.比较全面的L1和L2正则化的解释 3.正则化项L1和L2的区别 4.L1 相比于 L2 为什么容易获得稀疏解? 概括:L1和L2是正则化项,又叫做罚项,是为了限制模型的参数,防止模型过... -
正则表达式 价格正则表达式 非负整数正则表达式 正整数正则表达式
2014-10-22 17:24:51正则表达式 价格正则表达式 非负整数正则表达式 正整数正则表达式 //判断是否为价格:校验的价格为大于或等于0的数,最多有两位小数.如果是则返回true,否则返回false. function isPrice(price){ var reg = /... -
最新、最全、最准确的手机号正则表达式
2018-01-03 15:55:50更新到2018年1月,支持最新的166号段 ... * 手机号码正则表达式 */ private static final String PHONE_NUMBER_REG = "^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\\d{8}$"; -
编译原理-正则文法与正则表达式的相互转化
2020-12-22 19:24:44正则文法与正则表达式的相互转化前言一、正则表达式二、正则文法1.引入库2.读入数据三、转换规则四、转换例子总结 前言 正则文法作为对单词的描述的一种方式。 除正则文法外,正则表达式也可以描述单词,正则文法和... -
python正则匹配txt特定字符串(有换行)
2020-08-07 10:59:08python正则匹配txt特定字符串(有换行)在原txt文件中,我们需要匹配出的字符串为:休闲服务(中间参杂着换行)直接复制到notebook里进行处理完整代码 在原txt文件中,我们需要匹配出的字符串为:休闲服务(中间参杂着... -
L1正则化和L2正则化的详细直观解释
2018-08-09 15:13:18正则化(Regularization) 转自:此处 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数...
-
tomcat乱码问题
-
用微服务spring cloud架构打造物联网云平台
-
2020-L1-glossary&1.zip
-
DHCP 动态主机配置服务(在Linux环境下,配置单网段或跨网段提)
-
JS 手写 快排
-
MySQL 事务和锁
-
CCF-CSP 201403-2 窗口 [C++]
-
项目经理成长之路
-
洛谷P1598 垂直柱状图经典解法
-
项目管理工具与方法
-
NFS 实现高可用(DRBD + heartbeat)
-
2020年广州市华师附中中考二模英语试题
-
testOracle.rar
-
优质博客文档
-
智能停车场云平台(附vue+SpringBoot前后端项目源码)
-
深究字符编码的奥秘,与乱码说再见
-
应用层InLine HOOK
-
MySQL 数据库权限管理(用户高级管理和精确访问控制)
-
什么是双亲委派机制
-
从Docker到Kubernetes之技术实战.pdf