正则表达式查找相似单词的方法
本文通过展示各种不同的正则表达式结构,以及在实际应用中会用到的技巧,熟悉掌握正则表达式的应用。 问题描述: 在这个实例中你要解决如下几个问题。 1、想要在一个字符串中找到所有的color和colour。 2、想要找到这3个以"at”结尾的单词中的任意一个:bat、cat或rat。 3、想要找到以phobia结尾的单词。 4、想要找的名字"Steven”的常见变形:Steve、Steven和Stephen。 5、想要匹配术语"regular expression”的所有常见形式。 解决方案: 下面按顺序列出用来解决这些问题的正则表达式。所有这些解决方案中都使用了不区分大小写的选项。 问题1:color和colour bcolou?rb 正则选项:不区分大小写 正则流派:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby 问题2:bat、cat或rat b[bcr]atb 正则选项:不区分大小写 问题3:以"phobia"结尾的单词 bw*phobiab 正则选项:不区分大小写 问题4:Steve、Steven和Stephen bSte(?:ven?|phen)b 问题5:"regular expression”的变体 breg(?:ular?expressions?|ex(?:ps?|e[sn])?)b 正则选项:不区分大小写 正则流派:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby 解析: b #判断一个单词边界位置 reg #匹配"reg” (?: #分组但是不捕获 ular&; # 匹配"ular” expressions? # 匹配"expression”或"expressions" | # 或者: ex # 匹配"ex” (?: # 分组但是不捕获 ps? # 匹配"p”或"ps" | # 或者: e[sn] # 匹配"es”或"en" )? # 结束非捕获分组,整个分组为可选 ) # 非捕获分组的结束 b #判断一个单词边界位置 注:这5个正则表达式都使用了单词边界(<b>)确保只会匹配整个单词。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |