^ 表示匹配文本的开头位置。
正则表达式可以设定单行模式和多行模式
如果是单行模式 ,表示匹配整个文本的开头位置。
如果是多行模式 ,表示匹配文本每行的开头位置。
比如提取文本中水果的编号:
content = '''001-苹果价格-60
002-橙子价格-70
003-香蕉价格-80'''
import re
p = re.compile(r'^\d+', re.M)#前面加r表示不进行python语法的字符串转义
for one in p.findall(content):
print(one)
运行结果为:
001
002
003
^\d+表示匹配开头位置的一个或多个数字,re.M表示多行模式,若去掉re.M则为单行模式,输出结果为001。
因为在单行模式下,^只会匹配整个文本的开头位置。
$ 表示匹配文本的结尾位置。
如果是单行模式 ,表示匹配整个文本的结尾位置。
如果是多行模式 ,表示匹配文本每行的结尾位置。
比如提取文本末尾的水果价格:
content = '''001-苹果价格-60
002-橙子价格-70
003-香蕉价格-80'''
import re
p = re.compile(r'\d+$',re.MULTILINE)#前面加r表示不进行python语法的字符串转义
for one in p.findall(content):
print(one)
运行结果为:
60
70
80
re.MULTILINE指明了使用多行模式,若去掉re.MULTILINE,则为单行模式,运行结果为80。因为单行模式下,$ 只会匹配整个文本的结束位置。