正規表示式查詢相似單詞的方法

給我任何的發表於2022-03-19

本文通過展示各種不同的正規表示式結構,以及在實際應用中會用到的技巧,熟悉掌握正規表示式的應用。

問題描述:

在這個例項中你要解決如下幾個問題。

1、想要在一個字串中找到所有的color和colour。

2、想要找到這3個以"at”結尾的單詞中的任意一個:bat、cat或rat。

3、想要找到以phobia結尾的單詞。

4、想要找的名字"Steven”的常見變形:Steve、Steven和Stephen。

5、想要匹配術語"regular expression”的所有常見形式。

解決方案:

下面按順序列出用來解決這些問題的正規表示式。所有這些解決方案中都使用了不區分大小寫的選項。

問題1:color和colour

\bcolou?r\b

正則選項:不區分大小寫

正則流派:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby

問題2:bat、cat或rat

\b[bcr]at\b

正則選項:不區分大小寫

問題3:以"phobia"結尾的單詞

\b\w*phobia\b

正則選項:不區分大小寫

問題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>)確保只會匹配整個單詞。

以上就是本文的全部內容,希望對大家的學習有所幫助。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015106/viewspace-2874047/,如需轉載,請註明出處,否則將追究法律責任。

相關文章