正则表达式基础知识(一)

简介:

   之前在linux中用到三剑客grep、awk、sed等,简单的接触过正则表达式,但是没有深入的了解正则表达式,又一次在python里面接触到正则表达式,所以想着尽量一次攻克正则表达式,所以就将自己学习印记留在此处,供自己复习,同时也将相关知识分享给大家。

分享几个在线测试与学习正则的地址:

(1)http://deerchao.net/tutorials/regex/regex.htm  正则表达式30分钟入门

(2)http://tool.oschina.net/regex/ 在线测试以及有部分简单示例

(3)http://tool.chinaz.com/regex/ 在线测试工具

(4)http://www.ip138.com/zhengze/ 在线测试工具  推荐

(5)http://www.kingshang.com/  在线测试工具

(6)http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html python正则表达式

(7)https://c.runoob.com/front-end/854 测试工具推荐

 这种在线测试工具随便一搜就有很多,这里只列举几个。

1、正则表达式学习引导

1
2
3
( 1 )字符串: "one1two2three3four4"  用正则处理,输出  "1234"
首先分析字符串的规律,我们发现整个字符串由字母和数字组成,而结果仅包含数字,我们则可以写成
\d{ 1 }或者[ 1 - 9 ]{ 1 }或者[ 1 - 9 ]都可以实现。
1
2
3
4
5
6
( 2 )字符串info  =  '<a href = "
正则表达式为:[a - z.] * baidu[.a - z] *  和[w.] * baidu\. * \w *
匹配结果:
 
www.baidu.com
baidu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
( 3 )匹配出下面字符串的所有IP地址
 
17 - 03 - 29 来自地址:美国 / 加拿大 CZ88.NET IP【 199.30 . 25.74 】 的用户 查询了 IP【 222.45 . 52.0 】地址:江苏省盐城市 铁通ADSL
17 - 03 - 29 来自地址:美国 加利福尼亚州玛瑞娜戴尔瑞市IANA IP【 106.39 . 201.242 】 的用户 查询了 IP【 210.39 . 72.0 】地址:广东省 深圳清华大学研究院
17 - 03 - 29 来自地址:美国 CZ88.NET IP【 171.106 . 42.113 】 的用户 查询了 IP【 106.0 . 0.0 】地址:美国 加利福尼亚州玛瑞娜戴尔瑞市IANA
17 - 03 - 29 来自地址:亚太地区 CZ88.NET IP【 183.202 . 167.74 】 的用户 查询了 IP【 202.207 . 224.0 】地址:山西省长治市 长治医学院
17 - 03 - 29 来自地址:中国 移动 IP【 111.37 . 0.222 】 的用户 查询了 IP【 210.44 . 128.0 】地址:山东省济南市 山东财政学院
17 - 03 - 29 来自地址:中国 CZ88.NET IP【 180.153 . 214.182 】 的用户 查询了 IP【 123.6 . 0.0 】地址:河南省郑州市 联通
17 - 03 - 29 来自地址:CZ88.NET IP【  115.63 . 65.233 】 的用户 查询了 IP【 221.176 . 200.0 】地址:河南省 移动
17 - 03 - 29 来自地址:美国 CZ88.NET IP【 157.55 . 39.166 】 的用户 查询了 IP【 217.10 . 244.0 】地址:欧洲 CZ88.NET
正则表达式:
( 1 )\d * \.\d * \.\d * \.\d *   自己写的
( 2 )( 25 [ 0 - 5 ]| 2 [ 0 - 4 ]\d|[ 0 - 1 ]\d{ 2 }|[ 1 - 9 ]?\d)\.( 25 [ 0 - 5 ]| 2 [ 0 - 4 ]\d|[ 0 - 1 ]\d{ 2 }|[ 1 - 9 ]?\d)\.( 25 [ 0 - 5 ]| 2 [ 0 - 4 ]\d|[ 0 - 1 ]\d{ 2 }|[ 1 - 9 ]?\d)\.( 25 [ 0 - 5 ]| 2 [ 0 - 4 ]\d|[ 0 - 1 ]\d{ 2 }|[ 1 - 9 ]?\d)
第二个是在上面的工具中找的  明显比自己写的专业全面
搜索的结果:
199.30 . 25.74
222.45 . 52.0
106.39 . 201.242
210.39 . 72.0
171.106 . 42.113
106.0 . 0.0
183.202 . 167.74
202.207 . 224.0
111.37 . 0.222
210.44 . 128.0
180.153 . 214.182
123.6 . 0.0
115.63 . 65.233
221.176 . 200.0
157.55 . 39.166
217.10 . 244.0

    经过上面的三个小测试,发现正则表达式确实是一个很好玩的东西,也确实也有一定的难度,实现的方法和语法有多种,但是新手难以保证你的防范就是最全面的最准确的,需要多加练习才能熟练掌握。

2、正则表达式基本语法介绍

   正则表达式主要包含普通字符(大小写字母数字等)和元字符(特殊符号等)等内容。接下来介绍相关的基础知识。

wKioL1jdHBLyJBwtAAJ4eW9k7oo256.png

说明 正则表达式
网址(URL) [a-zA-z]+://[^\s]*
IP地址(IP Address) ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
电子邮件(Email) \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
QQ号码 [1-9]\d{4,}
HTML标记(包含内容或自闭合) <(.*)(.*)>.*<\/\1>|<(.*) \/>
密码(由数字/大写字母/小写字母/标点符号组成,四种都必有,8位以上) (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$
日期(年-月-日) (\d{4}|\d{2})-((1[0-2])|(0?[1-9]))-(([12][0-9])|(3[01])|(0?[1-9]))
日期(月/日/年) ((1[0-2])|(0?[1-9]))/(([12][0-9])|(3[01])|(0?[1-9]))/(\d{4}|\d{2})
时间(小时:分钟, 24小时制) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
汉字(字符) [\u4e00-\u9fa5]
中文及全角标点符号(字符) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
中国大陆固定电话号码 (\d{4}-|\d{3}-)?(\d{8}|\d{7})
中国大陆手机号码 1\d{10}
中国大陆邮政编码 [1-9]\d{5}
中国大陆身份证号(15位或18位) \d{15}(\d\d[0-9xX])?
非负整数(正整数或零) \d+
正整数 [0-9]*[1-9][0-9]*
负整数 -[0-9]*[1-9][0-9]*
整数 -?\d+
小数 (-?\d+)(\.\d+)?
不包含abc的单词 \b((?!abc)\w)+\b




本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1911932,如需转载请自行联系原作者

相关文章
|
移动开发 C++ Python
Python基础知识进阶之正则表达式(二)
Python基础知识进阶之正则表达式
144 1
|
Python
Python基础知识进阶之正则表达式(一)
Python基础知识进阶之正则表达式
107 0
|
XML 前端开发 数据安全/隐私保护
基础知识 - 常用正则表达式最强整理(速查手册)
基础知识 - 常用正则表达式最强整理(速查手册)
127 0
基础知识 - 常用正则表达式最强整理(速查手册)
|
SQL 关系型数据库 MySQL
MySQL基础知识——正则表达式(下)
上一篇我们讲解了正则表达式的一些简单用法,今天我们再来学习一下它的几个特殊用法。
MySQL基础知识——正则表达式(下)
|
SQL 关系型数据库 MySQL
|
编译器 C# C++
☀️ 学会编程入门必备 C# 最基础知识介绍(六)——接口、命名空间、预处理指令、正则表达式、异常处理、文件的输入与输出
前言👻 接口(interface)🎉 定义接口: MyInterface.cs 接口继承: InterfaceInheritance.cs C# 命名空间(Namespace)🎈 定义命名空间 using 关键字 嵌套命名空间 C# 预处理器指令🎄 C# 预处理器指令列表 #define 预处理器 条件指令 C# 正则表达式🔔 定义正则表达式 C# 异常处理🎃 语法 C# 中的异常类 异常处理 创建用户自定义异常 抛出对象 C# 文件的输入与输出⛄️ C# I/O 类 FileStream 类 C# 高级文件操作
☀️ 学会编程入门必备 C# 最基础知识介绍(六)——接口、命名空间、预处理指令、正则表达式、异常处理、文件的输入与输出
正则表达式-基础知识Review
正则表达式(Regular Expression)是计算机科学的一个概念。 正则表达式使用单个字符窜来描述、匹配一系列符合某个句法规则的字符窜。
886 0
|
机器学习/深度学习 Shell Windows