我們在正則表達(dá)式中可以看到很多相似的單詞,但是要一個個找出來就有點麻煩,那么你知道怎么利用正則表達(dá)式查找相似單詞嗎?下面就讓小編教你用正則表達(dá)式查找相似單詞的方法。
問題描述:
在這個實例中你要解決如下幾個問題。
1、想要在一個字符串中找到所有的color和colour。
2、想要找到這3個以"at”結(jié)尾的單詞中的任意一個:bat、cat或rat。
3、想要找到以phobia結(jié)尾的單詞。
4、想要找的名字"Steven”的常見變形:Steve、Steven和Stephen。
5、想要匹配術(shù)語"regular expression”的所有常見形式。
解決方案:
下面按順序列出用來解決這些問題的正則表達(dá)式。所有這些解決方案中都使用了不區(qū)分大小寫的選項。
問題1:color和colour
/bcolou?r/b
正則選項:不區(qū)分大小寫
正則流派:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby
問題2:bat、cat或rat
/b[bcr]at/b
正則選項:不區(qū)分大小寫
問題3:以"phobia"結(jié)尾的單詞
/b/w*phobia/b
正則選項:不區(qū)分大小寫
問題4:Steve、Steven和Stephen
/bSte(?:ven?|phen)/b
問題5:"regular expression”的變體
/breg(?:ular·expressions?|ex(?:ps?|e[sn])?)/b
正則選項:不區(qū)分大小寫
正則流派:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby
解析:
/b?????????????????????????? ?#判斷一個單詞邊界位置
?reg?????????????????????? ?#匹配"reg”
?(?:??????????????????????? ?#分組但是不捕獲
?? ular/????????????????????#??????? 匹配"ular”
??? expressions????? ? ?#?????? 匹配"expression”或"expressions"
?? |????????????????????????? ?#? 或者:
? ex?????????????????????????#?????? 匹配"ex”
? (?:????????????????????????#??????? 分組但是不捕獲
??? ps???????????????????? ?#????????????匹配"p”或"ps"
?? |?????????????????????????? #?????? 或者:
??? e[sn]?????????????????? #??????????? 匹配"es”或"en"
??)?????????????????????????? #???????? 結(jié)束非捕獲分組,整個分組為可選
?)?????????????????????????????#?非捕獲分組的結(jié)束???????
/b??????????????????????? ??? #判斷一個單詞邊界位置
注:這5個正則表達(dá)式都使用了單詞邊界(</b>)確保只會匹配整個單詞。
以上就是教你用正則表達(dá)式查找相似單詞的方法,通過展示各種不同的正則表達(dá)式結(jié)構(gòu),以及在實際應(yīng)用中會用到的技巧,熟悉掌握正則表達(dá)式的應(yīng)用。
新聞熱點
疑難解答