1、
import re
key = r"
hello world
"#这段是你要匹配的文本
p1 = r"(?<=
).+?(?=
)"#这是我们写的正则表达式规则,你现在可以不理解啥意思
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"
hello world
"#源文本
p1 = r"
.+
"#我们写的正则表达式,下面会将为什么【.字符在正则表达式代表着可以代表任何一个字符(包括它本身)】
pattern1 = re.compile(p1)
print(pattern1.findall(key))#发没发现,我怎么写成findall了?咋变了呢?
#[‘
hello world
‘]
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"lalalahelloheiheihei"
p1 = r".+?[Hh][Tt][Mm][Ll]>"
pattern1 = re.compile(p1)
print pattern1.findall(key)
#[‘hello‘]