正则表达式–基础篇

1、认识正则表达

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。  

利用正则我们可以达到如下的目的:1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

特点是:1. 灵活性、逻辑性和功能性非常的强;2. 可以迅速地用极简单的方式达到字符串的复杂控制。3. 对于刚接触的人来说,比较晦涩难懂。

2、正则表达组成

正则表达式由一些普通字符(包括大小写的字母和数字所有标点符号以及一些符号)和一些元字符(特殊的字符)组成

3、元字符

列举常用元字符

$   匹配内容结束位置(eg:/joyous$/,这个是匹配joyus结尾)

()  标记子匹配模块,后面可以使用\1、\2……来取代(eg:/(0-9)[a-z]\1/,这是匹配“数字字母数字”的)

*     匹配前面内容零次或者多次

+     匹配它之前的内容一次或者多次(注意这个是一个字符)

?     匹配它之前的一个字符一次或者零次

{n}   重复前面匹配内容n次

{n,}  重复前面匹配内容至少n次

{n,m} 重复前面匹配内容n-m次

.     匹配任意字符除换行符之外

^     匹配内容开头位置

\b    匹配分隔符(比如空格)而\B没有分隔符

\w    匹配字母数字下划线或者汉字

\d    匹配数字而\D匹配不是数字

[]    匹配方括号里面作为匹配范围,这样[0-9]就等同于\d

4.修正符

i不区分大小写

x忽略内容的空白

U贪婪匹配只匹配到最近的就停止匹配

m在匹配时候采用多行模式匹配

A强制从头开始匹配

D匹配结束标志为\n

可以使用RegexTester来验证正则

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

字符串匹配问题

、字符串匹配问题 【问题描述】        字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必...

40660
来自专栏行者常至

Java中的super 和 this

10510
来自专栏gaoqin31

c语言函数的隐式声明

编译器只有碰到函数原型的时候才知道这个函数的名字,参数类型个数返回值,到函数调用的时候才知道如何生成指令,所以函数原型必须出现在函数调用之前。

27420
来自专栏咸鱼不闲

static关键字,面试经常被问到!(一)

static可以理解为全局的。 static可以修饰: 变量,方法,代码块,内部类。

34150
来自专栏TungHsu

这或许是对小白最友好的python入门了吧——14,遍历字典

同列表元组一样,字典也能够遍历,但是和列表元组不一样的是,字典遍历分三个部分:遍历键值对、遍历键、遍历值 首先我们新建一个字典: score = {"engl...

27230
来自专栏程序手艺人

C++之函数参数的扩展

364110
来自专栏http://www.cnblogs.com

python学习笔记:深浅拷贝的使用和原理

在理解深浅拷贝之前,我们先熟悉下变量对象和数据类型 1.变量和对象 变量-引用-对象(可变对象,不可变对象) 在python中一切都是对象,比如[1,2],'h...

36960
来自专栏禁心尽力

Java异常总结

异常就是在程序中可能要发生的未知错误,java机制中异常分为2大类:Exception和Error。 对异常的处理方式有2种,一是将异常通过关键字throws抛...

25470
来自专栏程序员互动联盟

【答疑解惑】Java中的默认构造器和equals方法

有一些网友在学习Java基础知识是遇到一些问题小编来解答一下。 1、Java中的默认构造器: 在Java中你要创建一个对象肯定会调用new语句来创建一个对象,在...

37880
来自专栏前端知识分享

第29天:js-数组添加删除、数组和字符串相互转换

一、添加数组 var arr=[1,3,5]; arr.push(7,9);//添加7和9到数组arr后面,得到[1,3,5,7,9] 1、push();可向数...

25210

扫码关注云+社区

领取腾讯云代金券