正则表达式入门教程-连载(6)- 字符边界

简介:
字符边界

元字符\b是和脱字符^,美元符$相同的锚。它匹配字符边界位置,匹配的长度也是0

有3种不同的位置满足字符边界

字符串中,如果第一个字符是单词字符,那么这个字符之前的位置。

字符串中,如果最后一个字符是单词字符,那么这个字符之后的位置。

字符串中,当两个字符一个是单词字符一个不是单词字符,那么这两个字符之间。

简单的认为:\b允许你执行一个全字匹配查询。比如\bword\b。单词字符指的是可以用来拼成单词的字符。字符不是单词字符就是非单词字符。

所有的正则表达式中,[a-zA-Z0-9_] 都是单词字符,这些字符也匹配\w。

由于数字也可以认为是单词字符,\b4\b可以匹配不在一个大数字中的4.比如它不匹配44 sheets of a4。所以说“\b匹配字母数字序列的前后位置”比说“\b匹配单词的前后位置”更准确。

不是字符边界

\B是\b的否定版本。\B 匹配了\b 所不能匹配的。\B匹配了任意两个单词字符之间,或者两个非字符之间的位置。

竖线符号“|”指示在两个或多个项之间进行选择。

之前已经解释了字符集匹配单个字符,你也可以使用选择匹配单个正则表达式。

选择表达式是急迫型的

此表达式只要一旦查找到有效的匹配,就停止了。在某些场合下,选择顺序也会影响结果。

问号?表示可选。

问号表示前面的字符是可选的,例如colou?r匹配colour 和color

问号表达式也是贪婪的,他总是优先匹配问号的那一部分。比如,字符串 Today is Feb 23rd, 2003中,总是优先匹配 Feb 23rd 而不是匹配 Feb 23

重复匹配*号和+号

*表示重复匹配字符0次或者多次

+表示重复匹配字符1次或者多次

限制重复,正则表达式语法为{min,max}

所以{0,}等效于*, {1,} 等效于 +.

















本文转自cnn23711151CTO博客,原文链接: http://blog.51cto.com/cnn237111/739321,如需转载请自行联系原作者



相关文章
|
4月前
正则表达式的限定符、或运算符、字符类、元字符、贪婪/懒惰匹配
本文介绍了正则表达式中的限定符、或运算符、字符类、元字符以及贪婪与懒惰匹配的概念和用法。
42 5
|
4月前
|
Python
【Python】正则表达式判断是否存在连续相同的两个字符,连续两个字符一模一样
Python函数isContinuousChar,使用正则表达式来检测字符串中是否存在连续的相同字母或数字,并返回存在此类字符的列表长度,如果列表长度为0则表示不存在连续相同的字符。
156 2
|
6月前
|
人工智能 Java 数据格式
JavaSE——正则表达式(1/2):概述、初步使用(普通方法,正则表达式)、书写规则(字符类,预定义字符,数量词,其他,特殊案例)
JavaSE——正则表达式(1/2):概述、初步使用(普通方法,正则表达式)、书写规则(字符类,预定义字符,数量词,其他,特殊案例)
47 3
|
7月前
|
Java
Java正则表达式去掉非汉字字符
【5月更文挑战第11天】Java正则表达式去掉非汉字字符
144 3
|
7月前
|
监控 JavaScript 前端开发
正则表达式中的字符详解
正则表达式中的字符详解
95 1
|
7月前
|
Java
38、Java 中的正则表达式(单字符匹配和预定义字符)
38、Java 中的正则表达式(单字符匹配和预定义字符)
38 0
|
7月前
|
人工智能 JavaScript
js正则表达式new RegExp(表达式, “gi“)不区分大小写、忽略大小写匹配替换字符
js正则表达式new RegExp(表达式, “gi“)不区分大小写、忽略大小写匹配替换字符
|
Java PHP 开发者
最佳正则表达式快速入门教程,看这篇就够了!
你都不知道正则表达式的作用是什么 怎么可能学好它呢? 来吧学习一下正则的基础知识吧!
56 0
最佳正则表达式快速入门教程,看这篇就够了!
|
Python
132 python高级 - 正则表达式(表示字符)
132 python高级 - 正则表达式(表示字符)
74 0