标签:
1. Python通过re模块提供对正则表达式的支持。使用re的一般步骤是先使用re.compile()函数,将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。
举一个简单的例子,在寻找一个字符串中所有的英文字符:
import re
pattern = re.compile(‘[a-zA-Z]‘)
result = pattern.findall(‘as3SiOPdj#@23awe‘)
print result
# [‘a‘, ‘s‘, ‘S‘, ‘i‘, ‘O‘, ‘P‘, ‘d‘, ‘j‘, ‘a‘, ‘w‘, ‘e‘]
2. re.sub 函数进行以正则表达式为基础的替换工作
Mark
包含 a
,b
,或者 c
吗?是的,含有 a
。
好的,现在找出 a
,b
,或者 c
并以 o
取代之。Mark
就变成 Mork
了。
同一方法可以将 rock
变成 rook
。
你可能认为它可以将 caps
变成 oaps
,但事实并非如此。re.sub
替换所有 的匹配项,并不只是第一个匹配项。因此正则表达式将会把 caps
变成oops
,因为 c
和 a
都被转换为 o
了。
re.sub的函数原型为:re.sub(pattern, repl, string, count)
其中第二个函数是替换后的字符串;本例中为‘-‘
第四个参数指替换个数。默认为0,表示每个匹配项都替换。
3. re.split
可以使用re.split来分割字符串,如:re.split(r‘\s+‘, text);将字符串按空格分割成一个单词列表。
re.findall
re.findall可以获取字符串中所有匹配的字符串。如:re.findall(r‘\w*oo\w*‘, text);获取字符串中,包含‘oo‘的所有单词。
re.match的函数原型为:re.match(pattern, string, flags)
第一个参数是正则表达式,这里为"(\w+)\s",如果匹配成功,则返回一个Match,否则返回一个None;
第二个参数表示要匹配的字符串;
第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
import re
text = "JGood is a handsome boy, he is cool, clever, and so on..."
m = re.match(r"(\w+)\s", text)
if m:
print m.group(0), ‘\n‘, m.group(1)
else:
print ‘not match‘
4. 不同目录导入模块
错误信息“ImportError: No module named ‘fibo‘”
解决方法:在目录下新建空文件__init__.py
5. Python2.7中文不识别
错误信息“SyntaxError: Non-ASCII character ‘\xc9‘”
解决方法:文件头#coding=gbk
6. with用法
with conn:
conn.execute("insert into sometable values (?,?)",("foo","bar"))
在这个例子中,commit()是在所有with数据块中的语句执行完毕并且没有错误之后自动执行的,如果出现任何的异常,将执行rollback()操作,再次提示异常
7. Django模板错误
错误信息:Requested setting TEMPLATE_DEBUG, but settings are not configured. You must either define
解决方法:from django.conf import settings
settings.configure()
标签:
原文地址:http://www.cnblogs.com/hiory/p/4866349.html