0
点赞
收藏
分享

微信扫一扫

python正则表达式——单行、多行模式

小安子啊 2022-01-31 阅读 65

^ 表示匹配文本的开头位置。
正则表达式可以设定单行模式和多行模式
如果是单行模式 ,表示匹配整个文本的开头位置。
如果是多行模式 ,表示匹配文本每行的开头位置。

比如提取文本中水果的编号:

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。因为单行模式下,$ 只会匹配整个文本的结束位置。

举报

相关推荐

0 条评论