正则表达式(Regular Expression),又称规则表达式,在代码中常简写为regex、regexp或RE,是计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
➤举例
一个网页的HTML源码,其中有一段:
hello world
如果想要把这个hello world提取出来,但如果只会python 的字符串处理,那么第一反应可能是:
s =
hello world
start_index = s.find('
')
然后从这个位置向下查找到下一个
出现这样做未尝不可,但是很麻烦不是吗。需要考虑多个标签,一不留神就多匹配到东西了,而如果想要非常准确的匹配到,又得多加循环判断,效率太低。在这个时候,正则表达式,可以很好的解决上述问题。
➤正则表达式的处理方式
import re
key = r"
hello world
"#这段是你要匹配的文本
p1 = r"(?<=
).+?(?=
)"#这是我们写的正则表达式规则,你现在可以不理解啥意思
pattern1 = re.compile(p1)#我们在编译这段正则表达式
matcher1 = re.search(pattern1,key)#在源文本中搜索符合正则表达式的部分
print matcher1.group(0)#打印出来
python 中的正则表达式,回在匹配的字符串前面加上"r",用来说明匹配的字符串中的特殊字符不用转义
➤举例
假设想把一个字符串中的所有"python"给匹配:
import re
key = r"javapythonhtmlvhdl"#这是源文本
p1 = r"python"#这是我们写的正则表达式
pattern1 = re.compile(p1)#同样是编译
matcher1 = re.search(pattern1,key)#同样是查询
print matcher1.group(0)
☢re.compile的作用
re模块中包含一个重要函数是"compile(pattern [, fl