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