[正则表达式入门] 快速入门正则表达式

前言:
一直想发表一篇博文,来对正则表达式的使用进行记录,方便以后的查找,因为正则表达式的使用比较频繁,所以学会正则表达式是很必要的,所以在这里发表一篇博客做一个入门级别的介绍,希望对你们有用,有错误希望指正,互相学习,多多交流。

1. 正则表达式的概念

正则表达式的概念很简单:正则表达式就是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

2. 正则表达式的场景

列举一些正则表达式使用的场景:

  • 批量提取/替换有规律的字符串
  • 在各种高级的文本编辑器中的使用
  • 在各类办公软件中使用
  • 各种开发语言中的使用(java/JS/golang/php等)
  • 用户输入的合法性验证(IP地址、特殊的订单号要求等)
  • 模板引擎的标签库开发
  • 网络爬虫(抓取机器人的开发)
  • 批量的文本高效处理

3. 工具推荐

在这里推荐一个学习正则表达式要用到的工具regexBuddy这个软件是收费软件,需要破解版的可以到如下链接进行[下载安装](http://www.ddooo.com/softdown/135270.htm)。

4. 初识正则表达式及元字符的认识

windows系统或者Linux系统命令行中就存在最简单的正则表达式,比如:*代表任意长度的字符串,?长度为1的任意字符串等。

4.1 元字符的概念

我们来看这个表:

元字符说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
4.2 元字符反义
语法说明
\W匹配任意不是字母,S数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
^x匹配除了x以外的任意字符
^aeiou匹配除了aeiou这几个字母以外的任意字符

备注:要注意字符的转义:如果要想匹配点符号、问号符号这样的字符,我们需要进行转义,使用转义字符\来进行进行转义,否则将无法匹配。
上面这些符号我们可以通过regexBuddy这个软件进行测试加深映像。

5. 正则表达式相关使用

5.1 几种重复的模式
语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

这里还有一个知识点是分支条件:

  • 用 | 把不同的规则分隔开
  • 从左到右地测试每个条件,如果满足了某个分支的话,就不会去管其它的条件了。

我们平常在看别人的正则表达式的时候,会看到[0-9]这种的,它等于\d。[]中括号里面放置选择的条件。注意这种写法。

5.2 正则表达式的分组

分组就是将子表达式进行做成子集,我们可以使用()进行分组,方便了对match字符串进行划分。
这里设计一个贪婪与懒惰的概念。
贪婪就是:尽可能多的重复;相反懒惰就是:尽可能少重复。

语法说明
*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{n,m}?重复n到m次,但尽可能少重复
{n,}?重复n次以上,但尽可能少重复
5.3 简单demo

1. 例子1
假如我们要匹配ceshi cheshi或home home 这样重复的该如何处理呢?
答:这里就要用到分组了。我们可对单词进行分组,然后以空格作为区分,进行匹配。

答案如下:
\b(?<one>\w+)\b\s+\1\b

2. 例子2
看如下句子:I’m singing while you’re dancing. 找出该句子中带ing的单词。
答:这里我们需要用到零宽断言的知识点,也就是?=exp零宽度正预测先行断言,自身出现的位置的后面能匹配表达式exp。

答案如下:
\b\w+(?=ing\b)

在这里也另一种零宽断言:?<=exp零宽度正回顾后发断言,自身出现的位置的前面能匹配表达式exp。
举个例:I’m reading a book。从这个句子中找出前面是re开头的单词。

(?<=\bre)\w+\b

6. 总结

这篇博客会变学习边更新会持续更新下去…。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值