正則表達(dá)式查找相似單詞的方法
本文通過展示各種不同的正則表達(dá)式結(jié)構(gòu),以及在實際應(yīng)用中會用到的技巧,熟悉掌握正則表達(dá)式的應(yīng)用。
問題描述:
在這個實例中你要解決如下幾個問題。
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>)確保只會匹配整個單詞。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在Asp中用“正則表達(dá)式對象”來校驗數(shù)據(jù)的合法性
在Asp中用“正則表達(dá)式對象”來校驗數(shù)據(jù)的合法性...2007-03-03
使用正則表達(dá)式判斷是否為手機(jī)號碼(簡單且實用)
這篇文章主要介紹了使用正則表達(dá)式判斷是否為手機(jī)號碼(簡單且實用)的相關(guān)知識,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧2016-11-11
正則表達(dá)式實現(xiàn)字符串每4位后自動加空格效果(兩種方法)
本文通過兩種方法給大家介紹了正則表達(dá)式實現(xiàn)字符串每4位后自動加空格效果,需要的朋友可以參考下2018-09-09

