本文共 1872 字,大约阅读时间需要 6 分钟。
1.>>> print "\bhi"
hi
print r"\bhi"
\bhi
Python中遇到\会对后面的字符进行转义,而r(raw:生的。未加工的)不会对后面的字符串进行转义操作2.re.findall(r"hi", text)re是python里的正则表达式模块。findall是其中一个方法,用来按照提供的正则表达式,去匹配文本中的所有符合条件的字符串。返回结果是一个包含所有匹配的list。
3.“.”在正则表达式中表示除换行符以外的任意字符。会把输入的文本中每个字符都取出来。
'\S'在正则表达式中表示除换行符,空格以外的任意字符。会把输入的文本中每个非空格字符都取出来。4.‘I.e’会匹配句子中以I开头,以e结尾的较长的句子,叫贪婪匹配.‘I.?e’会分别匹配句子中以I开头,以e结尾的较短的句子,叫懒惰匹配5.表示数字的方法:(1):[0-9](2):\d如果要限定长度,就用{}代替+,大括号里写上你想要的长度。比如11位的数字:\d{11}*表示的任意长度包括0,也就是没有数字的空字符也会被匹配出来text = "site sea sue sweet se case sse ssee18789455549345665 loses"
m = re.findall(r"1\d+", text) m = re.findall(r"1.\d", text)输出m:['18789455549345665']m = re.findall(r"1\d", text)输出m:['18']m = re.findall(r"1\d{5}", text)输出m:['187894']text = "site sea sue sweet se case sse ssee187894555493456 65 loses"m = re.findall(r"\d+", text)输出m:['187894555493456', '65']m = re.findall(r"\d", text)输出m:['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '187894555493456', '', '65', '', '', '', '', '', '', '']6.元字符\w - 匹配字母或数字或下划线或汉字(3.x版本可以匹配汉字,但2.x版本不可以)\s - 匹配任意的空白符
^ - 匹配字符串的开始
$ - 匹配字符串的结束
\S其实就是\s的反义,任意不是空白符的字符。同理,还有:\W - 匹配任意不是字母,数字,下划线,汉字的字符
\D - 匹配任意非数字的字符
\B - 匹配不是单词开头或结束的位置
[a]的反义是[^a],表示除a以外的任意字符。[^abcd]就是除abcd以外的任意字符。
*、+、{}来表示字符的重复。其他重复的方式还有:
? - 重复零次或一次
{n,} - 重复n次或更多次
{n,m} - 重复n到m次
7.随机数random.randint(a, b)可以生成一个a到b间的随机整数,包括a和b。random.uniform(a, b)生成a、b之间的随机浮点数。不过与randint不同的是,a、b无需是整数,也不用考虑大小random.choice(seq)从序列中随机选取一个元素。seq需要是一个序列,比如list、元组、字符串。random.randrange(start, stop, step)生成一个从start到stop(不包括stop),间隔为step的一个随机数。random.sample(population, k)从population序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。random.shuffle(x)把序列x中的元素顺序打乱。shuffle直接改变原有的序列。引入的时候两种写法:(1)from random import randintrandint(1, 10)(2)import randomrandom.randint转载于:https://blog.51cto.com/13930723/2162444