首页
人工智能
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
网络运维
正则表达式\b
正则表达式
2020-06-28
今天刚刚开始看正则表达式就遇到
一个
十分头疼的问题,原文是这样的: “不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。 \b是正则表达式规定的
一个
特殊
代码
(好吧,某些人叫它元字符,
Meta
ch
ara
cter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,
标点符号
或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何
一个
,它只匹配
一个
位置” 问题来了,什么叫只匹配
一个
位置???? 要知道是
一个
单词的开头,这个\b是去匹配开头的分隔符还是匹配开头的第
一个
字母?? 从网上找到了这样一句话:“如果需要更精确的说法,\b匹配这样的位置:它的前
一个
字符和后
一个
字符不全是(
一个
是,
一个
不是或不存在)\w(匹配字母或数字或下划线或汉字)” 这 句话很隐晦的说出了是去匹配第
一个
字母,而不是去匹配分割符(我这说的匹配分隔符和上边说的不去匹配任何
一个
分隔符并不矛盾,因为我经过实验已经进本猜出 了
一个
单词两边只要没有数字、字母、汉字、下划线就可以认为是独立单词,我说的匹配分隔符是去判断单词前
一个
字符是不是
在这
四个之外,是的话就认为是单词 开头) 再
加上
下边的两个例子就可以很清晰的理解这句很隐晦的话。 引用Microsoft VBScript Regular Expression Dim myReg As RegExp Set myReg = New RegExp myReg.Pattern = "a\b.*h.*" Print myReg.Test("a,chia")
输出
的结果为Ture 说明是匹配的a,而不是, Dim myReg As RegExp Set myReg = New RegExp myReg.Pattern = "a.* \b h.*" Print myReg.Test("a,chia")
输出
的结果为flash 说明匹配的是h,而不是c 这两个例子非常有助于理解\b的真实含义,希望对大家有帮助! 接下来就是我保证目前网络中没有的
内容
了!!!!还有两点需要说明: 1、\b只能匹配字母、数字、汉字、下划线 2、\b就近匹配,比如\bAB 匹配A,AB\b 匹配B;但如果只写
一个
\b或者在两个字母、数字、汉字、下划线之间有\b时就在所有字符或者两个字母、数字、汉字、下划线之间所有字符去逐个匹配 相信如果你能看懂我上面所写的东西,对于\b的使用算是没有任何问题了!对正则表达式的学习有
一个
好的开始和基础!
相关文章
正则替换html代码中img标签的src值
正则替换html代码中img标签的src值在开发富文本信息在移动端...
【C++】正则表达式
正则表达式
shell之三剑客awk基础用法
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python基础知识进阶之正则表达式
Python界一名小学生,热心分享编程学习。
开发者神器,代码文档终于有救了
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...