正则表达式匹配单词是如何实现的呢,这里我们向你介绍了一个详细的实施办法以及实现的原理分析,希望对你了解正则表达式匹配单词有所帮助。

正则表达式匹配单词其实便是要处理单词的鸿沟问题,那么详细的完成是怎么呢?正则表达式匹配单词所触及的办法以及原理是什么呢?那么让我们开端吧

正则表达式匹配单词细节解析(正则表达式匹配完整单词)  正则表达式匹配单词 第1张

正则表达式匹配单词的内情:

元字符<<\b>>也是一种对方位进行匹配的“锚”。这种匹配是0长度匹配。有4种方位被认为是“单词鸿沟”:

1)在字符串的***个字符前的方位(假如字符串的***个字符是一个“单词字符”)

2)在字符串的***一个字符后的方位(假如字符串的***一个字符是一个“单词字符”)

3)在一个“单词字符”和“非单词字符”之间,其间“非单词字符”紧跟在“单词字符”之后

4)在一个“非单词字符”和“单词字符”之间,其间“单词字符”紧跟在“非单词字符”后边

“单词字符”是可以用“\w”匹配的字符,“非单词字符”是可以用“\W”匹配的字符。在大多数的正则表达式完成中,“单词字符”一般包含<<[a-zA-Z0-9_]>>。

例如:<<\b4\b>>可以匹配单个的4而不是一个更大数的一部分。这个正则表达式不会匹配“44”中的4。

换种说法,简直可以说<<\b>>匹配一个“字母数字序列”的开端和完毕的方位。

“单词鸿沟”的取反集为<<\B>>,他要匹配的方位是两个“单词字符”之间或许两个“非单词字符”之间的方位。

正则表达式匹配单词的原理讨论:

◆深化正则表达式引擎内部

让我们看看把正则表达式<<\bis\b>>应用到字符串“This island is beautiful”。引擎先处理符号<<\b>>。由于\b是0长度 ,所以***个字符T前面的方位会被调查。由于T是一个“单词字符”,而它前面的字符是一个空字符(void),所以\b匹配了单词鸿沟。接着<<i>>和***个字符“T”匹配失利。匹配进程持续进行,直到第五个空格符,和第四个字符“s”之间又匹配了<<\b>>。但是空格符和<<i>>不匹配。持续向后,到了第六个字符“i”,和第五个空格字符之间匹配了<<\b>>,然后<<is>>和第六、第七个字符都匹配了。但是第八个字符和第二个“单词鸿沟”不匹配,所以匹配又失利了。到了第13个字符i,由于和前面一个空格符构成“单词鸿沟”,一起<<is>>和“is”匹配。引擎接着测验匹配第二个<<\b>>。由于第15个空格符和“s”构成单词鸿沟,所以匹配成功。引擎“急着”回来成功匹配的成果。

【修改引荐】

  1. 正则表达式字符集探求
  2. ?*或+正则表达式运用详解
  3. 完成正则表达式匹配恣意字符解析
  4. 浅析正则表达式完成字符串的相关操作
  5. Java正则表达式完成条件查询浅析
转载请说明出处
知优网 » 正则表达式匹配单词细节解析(正则表达式匹配完整单词)

发表评论

您需要后才能发表评论