pyRegex1

來源:互聯網
上載者:User

{
tagshow(event)
}">Regex中特殊的符號:
“.”:表任一字元
“^ ”:表 string 起始
“$”:表 string 結束
“*”,“+”,“?”:跟在字元後面表示,0 個——多個, 1 個——多個, 0 個或者 1 個
“*?”,“+?”,“??”:合格情況下,匹配的儘可能少    //限制“*”,“+”,“?”匹配的貪婪性
{m}:匹配此前的字元,{
tagshow(event)
}">重複 m 次
{m,n}:m 到 n 次,m 和 n 可以省略
[]:表一系列字元,“[abcd]”表示 a,b,c,d,“[^a]”表示非 a
“A|B”:表示 A 或者 B , A 和 B 為任意的Regex 另外“|”是非貪婪的,如果 A 匹配,則不找 B
“(…)”:這個括弧的作用要結合執行個體才能理解, 用於提取資訊
/d:[0-9]
/D:非 /d
/s:表示Null 字元
/S:非Null 字元
/w:[a-zA-Z0-9_]
/W:非 /w

 

如果某個單詞以 S 、X 或 Z 結尾,添加 ES 。Bass 變成 basses, fax 變成 faxes,而 waltz 變成 waltzes。

如果某個單詞以發音的 H 結尾,加 ES;如果以不發音的 H 結尾,只需加上 S 。什麼是發音的 H ?指的是它和其它字母組合在一起發出能夠聽到的聲音。因此 coach 變成 coaches 而 rash 變成 rashes,因為在說這兩個單詞的時候,能夠聽到 CH 和 SH 的發音。但是 cheetah 變成 cheetahs,因為 H 不發音。
• 如果某個單詞以發 I 音的字母 Y 結尾,將 Y 改成 IES;如果 Y 與某個原因字母組合發其它音的話,只需加上 S 。因此 vacancy 變成 vacancies,但 day 變成 days 。
• 如果所有這些規則都不適用,只需加上 S 並作最好的打

 

實現代碼

# -*- coding: utf-8 -*-
"""
添加中文注釋 要加上開頭的# -*- coding: utf-8 -*-
或者 # -*- coding: cp936 -*-   不然報錯
"""
'''
Created on 2011-3-16

@author: 123
'''
import  re
def Plural(noun):
    if re.search('[sxz]$', noun):
         return re.sub('$', 'es', noun)
    elif re.search('[^aeioudgkprt]h$', noun):
         return re.sub('$', 'es', noun)
    elif re.search('[^aeiou]y&', noun):
         return re.sub('y$', 'ies', noun)
 
    else:
         return noun + 's'

 

s = 'teacher'
print Plural(s)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.