现在的位置: 首页 > 综合 > 正文

py正则表达式1

2013年09月19日 ⁄ 综合 ⁄ 共 1079字 ⁄ 字号 评论关闭

正则表达式中特殊的符号:
“.”:表任意字符
“^ ”:表 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)

抱歉!评论已关闭.