py正則表達式1

正則表達式中特殊的符號:
“.”:表任意字符
“^ ”:表 string 起始
“$”:表 string 結束
“*”,“+”,“?”:跟在字符後面表示,0 個——多個, 1 個——多個, 0 個或者 1 個
“*?”,“+?”,“??”:符合條件的情況下,匹配的儘可能少    //限制“*”,“+”,“?”匹配的貪婪性
{m}:匹配此前的字符,重複 m 次
{m,n}:m 到 n 次,m 和 n 可以省略
[]:表一系列字符,“[abcd]”表示 a,b,c,d,“[^a]”表示非 a
“A|B”:表示 A 或者 B , A 和 B 爲任意的正則表達式 另外“|”是非貪婪的,如果 A 匹配,則不找 B
“(…)”:這個括號的作用要結合實例才能理解, 用於提取信息
/d:[0-9]
/D:非 /d
/s:表示空字符
/S:非空字符
/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)

發佈了71 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章