Python之模块
Random模块
random()返回0≤n<0之间的随机实数n
getrandbits(n)以长整形返回n个随机位
uniform(a,b)返回随机实数n,a≤n<b
randrange(start,stop,step),返回range(start,stop,step)中的随机数
choice(seq),从序列seq中返回随意元素
shuffle(seq[,random]),将给定(可变)序列的元素进行随机移位,每种排列的可能都近似相等。
sample(seq,n),从给定序列中(均一地)选择给定给定数目的元素,同时确保元素互不相同。]
re模块
通配符: . 可以匹配除换行符外的任意单个字符
转义符:\\ 对特殊字符进行转义使之可以作为普通字符使用,如'python\\.org'只会匹配'python.org',也可以使用原始字符串如r'python\.org'
字符集:[],可以匹配它包括的任意一个字符,如需反转字符集,可以在开头使用^,如[^abc]匹配除a,b,c之外的任意字符
选择符:|(又称管道符),如'python|perl'
子模式:用圆括号括起来需要的部分如'p(ython|erl)'
可选项:在子模式的后边加上?,它就变成了可选项,可能出现在匹配字符串中但是并非必需。如r'(http://)?(www\.)?python.org'只能匹配
'http://www.python.org'
'http://python.org'
'www.python.org'
'python.org'
值得注意的地方:对点号进行了转义;使用原始字符串减少了反斜线的数量;每个子模式都用圆括号括起来;可选子模式出现与否均可,而且相互独立。
(pattern)*,允许模式重复0次或多次
(pattern)+,允许模式重复1次或多次
(pattern){m,n},允许模式重复m~n次
字符串的开头与结尾:开头^,结尾$
re模块的一些重要函数
compile(pattern[, flags]):根据包含正则表达式的字符串创建模式对象,使用compile完成一次转换之后在每次使用模式的时候就不用进行转化。
search(pattern,string[,flags]):在字符串中寻找第一个匹配给定正则表达式的子字符串,一旦找到返回MatchObject(值为True),否则返回None(值为False),所以可以用在条 件语句中。
match,在给定字符串的开头匹配正则表达式。
split(pattern,string[,maxsplit=0]):根据模式的匹配项来分割字符串,返回值是字符串的列表,maxsplit是最多可以分割的次数。
sub(pat,repl,string[,count=0]):使用给定的的替换内容将匹配模式的子字符串替换掉
escape(string):对字符串中所有可能被解释为正则运算符的字符进行转义。
匹配对象和数组
组是放置在圆括号内的子模式,租的序号取决于它左侧的括号数,组0就是整个模式
group([group1,...])返回给定模式中与给定族匹配的字符串,如果没有给出组号默认为0组,如果给定一个组号会返回单个字符串,否则会将对应给定组数的字符串作为元组返回
start([gruop])返回给定组匹配项的开始位置。
end([grop])返回给定组的匹配项的结束位置(不包括组的结束位置)
span([group])返回一个组的开始位置和结束位置。
作为替换的组号和函数
re.sub可在替换字符串中使用组号,在替换内容中所有以'\\n'形式出现的任何转义序列都会被模式中与组n匹配的字符串替换掉
如,emphasis_pattern=r'\*([^\*]+)\*'
>>>re.sub(emphasis_pattern,r'<em>\1</em>','hello.*world*')
'hello.<em>world</em>!'‘
浙公网安备 33010602011771号