【安卓笔记】正则表达式

正则表达式的前世今生

一、正则表达式的历史

1.开始是神经生理学中用于表达神经模型的方法
2.后应用于数学:正则集代数
3.Unix之父——丹尼斯·里奇引入计算机领域:

二、正则表达式概念:

用单个字符串描述、匹配一系列符合某个句法规则的字符串,是一门表达式语言

三、正则表达式引擎:解析正则表达式的内核

1.DFA
2.传统NFA:JAVA
3.POSIX NFA:

四、举例:匹配一个通用的URL地址

((http|https|ws|wss):\/\/)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})*(\/[a-zA-Z0-9\&%_\./-]*)?

正则表达式常见使用场景

一、常见场景:

1.批量提取、替换有规律的字符串
2.在各种高级文本编辑器中的使用
3.在各类办公软件 (office等) 中使用
4.各种开发语言中的使用 (C#、Java、JS、Perl、PHP等等)
5.用户输入的合法性验证 (IP地址、特殊的订单号要求等)
6.模板引擎的标签库开发
7.网络爬虫(抓取机器人) 的开发
8.批量的文本高效处理

二、推荐常见工具

1.推荐RegexBuddy
http://www.regexbuddy.com
2.RegExBuilder
http://www.redfernplace.com/software-projects/regex-builder/
3.在线测试工具
http://tool.chinaz.com/regex/
http://regexper.com
https://www.debuggex.com

三、基础语法

1. 元字符
2.反义符(元字符大写)
3.边界符
4.转义符
5.注释
6.计量符 - 表示重复的次数
7.逻辑符(环视:匹配到最后时回顾前面的内容)
8.案例:在这段字符中匹配正则表达式:
18092700000
13384988889
13392788888
18092766666
18092766644
13313313313
I am the king of biography
throes of 
11111111
12311111111
1112235111

表达式:1*
匹配得到:
在这里插入图片描述


表达式:133?
得到:
在这里插入图片描述


表达式:1{3}
得到:
在这里插入图片描述

表达式:1{3,}
得到:
在这里插入图片描述

表达式:12*
得到:在这里插入图片描述

9.案例:输入一段

021-1234567
021-12345678
021-123456789
021-88888888
3344-99999999
TEL:021-123456789

表达式:\d{3}-\d{7,8}
得到:
在这里插入图片描述

但是,9位的也被匹配到了,前面有TEL的时候也被匹配到了
需要边界符
更正:^\d{3}-\d{7,8}$

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值