ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

010、【byhy】 常见语法—— 起始、结尾位置 和 单行、多行模式

2021-09-08 14:04:21  阅读:178  来源: 互联网

标签:content byhy re 模式 010 单行 print 80


 

 

一、 常见语法——  起始、结尾位置 和 单行、多行模式

 

 

^ 表示匹配文本的 开头 位置。

正则表达式可以设定 单行模式 和 多行模式

如果是 单行模式 ,表示匹配 整个文本 的开头位置。

如果是 多行模式 ,表示匹配 文本每行 的开头位置。

比如,下面的文本中,每行最前面的数字表示水果的编号,最后的数字表示价格

001-苹果价格-60,
002-橙子价格-70,
003-香蕉价格-80,

如果我们要提取所有的水果编号,用这样的正则表达式 ^\d+

上面的正则表达式,使用在Python程序里面,如下所示

import re

content = '''001-苹果价格-60
002-橙子价格-70
003-香蕉价格-80'''

# re.M 表示多行模式,不加的话默认是单行模式
p = re.compile(r'^\d+', re.M)
for one in p.findall(content):
    print(one)

print('=====单行模式======')
content = '''001-苹果价格-60
002-橙子价格-70
003-香蕉价格-80'''

# 不加的话默认是单行模式
p1 = re.compile(r'^\d+')
for one in p1.findall(content):
    print(one)

执行结果如下:

001
002
003
=====单行模式======
001

Process finished with exit code 0

因为单行模式下,^ 只会匹配整个文本的开头位置。

 

$ 表示匹配文本的 结尾 位置。

如果是 单行模式 ,表示匹配 整个文本 的结尾位置。

如果是 多行模式 ,表示匹配 文本每行 的结尾位置。

比如,下面的文本中,每行最前面的数字表示水果的编号,最后的数字表示价格

001-苹果价格-60,
002-橙子价格-70,
003-香蕉价格-80,

如果我们要提取所有的水果编号,用这样的正则表达式:  \d+,$

 

对应代码

import re

content = '''001-苹果价格-60,
002-橙子价格-70,
003-香蕉价格-80,
'''

p = re.compile(r'\d+,$', re.MULTILINE)
for one in p.findall(content):
    print(one)

注意,compile 的第二个参数 re.MULTILINE ,指明了使用多行模式,

运行结果如下:

60,
70,
80,

Process finished with exit code 0

如果,去掉 compile 的第二个参数 re.MULTILINE:

import re

content = '''001-苹果价格-60,
002-橙子价格-70,
003-香蕉价格-80,
'''
print('=======多行模式=========')

p = re.compile(r'\d+,$', re.MULTILINE)
for one in p.findall(content):
    print(one)

print('=======单行模式=========')

p1 = re.compile(r'\d+,$')
for one in p1.findall(content):
    print(one)

运行结果如下:

=======多行模式=========
60,
70,
80,
=======单行模式=========
80,

Process finished with exit code 0

 

标签:content,byhy,re,模式,010,单行,print,80
来源: https://www.cnblogs.com/qq-2780619724/p/15242436.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有