本文通過展示各種不同的正則表達(dá)式結(jié)構(gòu),以及在實(shí)際應(yīng)用中會(huì)用到的技巧,熟悉掌握正則表達(dá)式的應(yīng)用。
問題描述:
在這個(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è)單詞。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Javascript中查找不以XX字符結(jié)尾的單詞示例代碼
- JS查找英文文章中出現(xiàn)頻率最高的單詞