博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式入门教程-连载(6)- 字符边界
阅读量:6527 次
发布时间:2019-06-24

本文共 767 字,大约阅读时间需要 2 分钟。

字符边界

元字符\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,} 等效于 +.

转载地址:http://tqvbo.baihongyu.com/

你可能感兴趣的文章
SPOOLing技术【十全十美】
查看>>
在linux下php挂接mysql.so扩展的方法
查看>>
Script编码工具推荐
查看>>
在Docker中运行torch版的neural style
查看>>
Linux下多线程查看工具(pstree、ps、pstack)
查看>>
Nginx 的 TCP 负载均衡介绍
查看>>
如何重建Microsoft Exchange Server Auth Certificate证书
查看>>
QLExpress基本语法
查看>>
ip子网划分的一些技巧方法
查看>>
进阶篇第四期:任性的提高代码质量(一)
查看>>
rhce习题集rhel7
查看>>
ubuntu下mysql5.7+php7+nginx环境搭建
查看>>
Linux操作系统基础解析之(二)——操作系统由来
查看>>
hello world
查看>>
易飞报表数据库PostgreSQL改成MSSQL方式
查看>>
MogileFS分布式文件系统
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
智能服务架构 F5将定义L4-L7层SDN?
查看>>
m2eclipse插件地址
查看>>