正则表达式之字符边界
2017-01-06 19:37
393 查看
零宽与非零宽
非零宽字符:能够匹配字符的(特殊)字符。如:\d会匹配一个数字,\s会匹配空白字符零宽字符:不匹配字符,只标记位置(具体含义见下文)
字符边界
表达式 | 表示含义 |
---|---|
^ | 与字符串开始的地方匹配 |
$ | 与字符串结束的地方匹配 |
\b | 匹配一个单词边界 |
上例表示:匹配以”a”作为字符串开始的位置
上例表示:匹配以”l”作为字符串结尾的位置
关于\b 的理解
初学者往往对\b感到很困惑,一方面是对\b作为位置标识的不习惯,另一方面是对\b所表示的含义不明确,很多教程给的解释也太书面,因此我认为有必要单独将其列出来进行一下说明。\b匹配的位置:前面和后面的字符不全是\w(字母,数字,下划线,汉字)
反过来理解就是,如果\b的前面和后面都是\w,则不匹配
示例如下:
先不谈匹配的结果,很多人看到这里可能有这样的疑问,不是说\b匹配的是位置吗?怎么最后匹配的字符串呢?要注意,我们只是说\b匹配的是一个位置,而不是说apple也跟着匹配位置,以第一个匹配成功的黄色高亮显示的apple为例
此例中,\b表示的是apple和左边的空格之间的位置。
接下来分析为什么会有这样的匹配:
\b的后边是apple,属于\w,因为\b匹配的位置前后不能全是\w,所以\b之前就不能是\w了,因此只有apple(前边是空格)、apple11(前边是空格)、apple1(前边是空格)符合。
下面将\b放在apple后面进行测试:
结果请读者自己分析。
相关文章推荐
- ES5基础之正则表达式02:范围类、预定义类和边界字符
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 正则表达式非贪婪模式和取反字符类的使用区别
- php如何用正则表达式判断中文字符
- 常用正则表达式字符说明
- 随笔:linux中正则表达式BRE模式下的特殊匹配字符
- 正则表达式-字符组2
- 关于正则表达式匹配任意字符(包括换行符)的写法
- Java正则表达式 重复字符(串)问题
- Java正则表达式 重复字符(串)问题
- 正则表达式语法 字符 说明
- 实战:ORACLE正则表达式_自定义函数_左右边界截取
- 正则表达式 入门 -- 简单字符匹配、元字符
- java用正则表达式过滤特殊字符
- Java正则表达式 做校验验证字符串中全是字符和数字组成
- php正则表达式中特殊字符及用法
- JavaScript版正则表达式组合和限制字符
- 正则表达式的几种字符判断(包括数字,字母组合等)
- 基础正则表达式字符汇整
- 正则表达式中的特殊字符