正则表达式语法入门
来源:互联网 发布:淘宝金牌店铺联盟 编辑:程序博客网 时间:2024/06/05 02:18
正则表达式看不懂?本文介绍简单的正则表达式语法和几个简单的要点,帮助初学者来认识它。
首先是特殊字符的说明(看不懂没关系,下面会有解释):
如e(abc)*这样的表达式能匹配的字符串最短是e,即*前面的表示式可以不出现,但如果是e(abc)+的话,最短匹配的字符串就是eabc了,即+前面的子表达式至少出现一次,其他的匹配还有eabcabc、eabcabcabc等。相应的e(abc)?这样的表达式,只能匹配eabc和e。
要点二:三种括号的区别
小括号表示一个表达式,如(0-9)匹配字符串"0-9";但这里如果换成中括号[0-9]则表示一个0到9的字符,比如0、1、2……,有多种匹配情况。大括号没有{0-9}这样的写法,通常用来表示匹配的长度,比如a{3,5}可以匹配aaa、aaaa、aaaaa,即表示长度为3到5的a字符串。
要点三:转义字符的使用
转义字符就是‘\’,比如一个字符串为abcd{ooo},用正则表达式可以表示为abcd\{o{3}\},o{3}表示三个o,但转义字符后面的符号就没有了特殊字符的含义,而可以作为普通字符使用。
有些诸如空格、回车这样看不见的东西也是通过转义字符来实现:
看看,有了这些定位符,我们就可以匹配诸如“work”、“apple”这样的独立单词了,因为定位符可以标记字符串的边界。
举几个例子就很清楚了。比如“^a[0-9]b$”,匹配以a开头、以b结尾、中间为一位数字的字符串,它可以匹配a0b、a4b、a5b等,但不能匹配c4b、a4d、e4t之类的内容。
要点四:\B和\b的区别
当我们需要找以app开头的字符串时,可以用“\bapp”来匹配,这样中间或结尾出现“app”的字符串就不会被匹配到。
\B的作用与\b相反,但又有不同。\Bapp表示app出现在单词非边界的位置,这时“\Bapp”和“app\B”是一样的。但“app\b”和“\bapp”不同,它只能匹配以app为结尾的单词。
要点五:^的不同含义
前面说到^表示字符串的开头位置,但在中括号表达式中它的意思就不一样了。比如“[^a]”匹配一个不是a的字符,它可以是除a以外的任何字符。
参考:
本文表格来自菜鸟教程。
- 正则表达式语法入门
- 正则表达式语法入门
- 正则表达式入门级语法
- 我在入门:[正则表达式语法入门]
- php正则表达式入门-常用语法格式
- 正则表达式入门级看懂语法
- 正则表达式语法
- 正则表达式语法
- 正则表达式语法
- 正则表达式语法解析
- 正则表达式语法
- 正则表达式语法
- 正则表达式语法
- 正则表达式语法
- 正则表达式语法
- 正则表达式语法
- 正则表达式语法
- 正则表达式语法
- thinkPHP5 分页查询
- 【C语言】【unix c】线程同步,条件变量,mutex锁,信号量
- 点到三角形/直线/线段的距离
- 微信小程序 —— 自定义长圆形view
- sizeof PK strlen
- 正则表达式语法入门
- 二叉树的序遍历
- [转]矩阵奇异值分解(SVD)及其应用
- python 利用正则实现简易计算器
- Oracle笔记十二:集合、序列
- 冒泡排序
- VueJs探索之watch用法详解
- CodeForces 867E Buy Low Sell High
- Struts2之HelloWolrd