正则表达式1

1、

import re
key = r"<html><body><h1>hello world<h1></body></html>"#这段是你要匹配的文本
p1 = r"(?<=<h1>).+?(?=<h1>)"#这是我们写的正则表达式规则,你现在可以不理解啥意思
pattern1 = re.compile(p1)#我们在编译这段正则表达式
matcher1 = re.search(pattern1,key)#在源文本中搜索符合正则表达式的部分
print(matcher1.group(0))#打印出来

#hello world

2、

import re
key = r"javapythonhtmlvhdl"#这是源文本
p1 = r"python"#这是我们写的正则表达式
pattern1 = re.compile(p1)#同样是编译
matcher1 = re.search(pattern1,key)#同样是查询
print(matcher1.group(0))

#python

3、

import re
key = r"<h1>hello world<h1>"#源文本
p1 = r"<h1>.+<h1>"#我们写的正则表达式,下面会将为什么【.字符在正则表达式代表着可以代表任何一个字符(包括它本身)】
pattern1 = re.compile(p1)
print(pattern1.findall(key))#发没发现,我怎么写成findall了?咋变了呢?

#['<h1>hello world<h1>']

4、#正则表达式中有一个字符\,这个符号通常用来把特殊的符号转成普通的,把普通的转成特殊的,

      #我们在.的前面加上了转义符\,但是并不是代表匹配“\.”的意思,而是只匹配“.”的意思

import re
key = r"afiouwehrfuichuxiuhong@hit.edu.cnaskdjhfiosueh"
p1 = r"chuxiuhong@hit\.edu\.cn"
pattern1 = re.compile(p1)
print (pattern1.findall(key))

#['chuxiuhong@hit.edu.cn']

5、#有没有发现我们第一次用.时,后面还跟了一个+?那这个加号是干什么的呢

     #“.字符在正则表达式代表着可以代表任何一个字符(包括它本身)”,但是"hello world"可不是一个字符。
   # +的作用是将前面一个字符或一个子表达式重复一遍或者多遍
     #比方说表达式“ab+”那么它能匹配到“abbbbb”,但是不能匹配到"a",它要求你必须得有个b,多了不限,少了不行

     #问我有没有那种“有没有都行,有多少都行的表达方式”,回答是有的。【*】跟在其他符号后面表达可以匹配到它0次或多次

     比方说我们在王叶内遇到了链接,可能既有http://开头的,又有https://开头的,我们怎么处理?

import re
key = r"http://www.nsfbuhwe.com and https://www.auhfisna.com"#胡编乱造的网址,别在意
p1 = r"https*://"#看那个星号!
pattern1 = re.compile(p1)
print (pattern1.findall(key))

#['http://', 'https://']

6、[]代表匹配里面的字符中的任意一个

import re

key = r"lalala<hTml>hello</Html>heiheihei"
p1 = r"<[Hh][Tt][Mm][Ll]>.+?</[Hh][Tt][Mm][Ll]>"
pattern1 = re.compile(p1)
print pattern1.findall(key)

#['<hTml>hello</Html>']

  

posted @ 2017-10-18 00:39  tantao258  阅读(248)  评论(0编辑  收藏  举报