# 代码1
# -*- coding: UTF-8 -*-
import re
str = "a123b456befgh"
# 匹配 a 和第一个出现的 b 之间的值
# findall(pattern, string, flags=0)
result = re.findall(r"a(.+?)b", str)
print(type(result))
print(result)
print(type(result[0]))
'''
输出:
<class 'list'>
['123']
<class 'str'>
'''
# 匹配 a 和最后一个 b 之间的所有值
result = re.findall(r"a(.+)b", str)
print(result)
# ['123b456']
# 匹配 a 和最后一个 b 之间的所有值
result = re.findall(r"a(.*)b", str)
print(result)
# ['123b456']
# 代码2
# -*- coding: UTF-8 -*-
import re
str='abcd1234efg'
# 匹配从 ab 开始,到 ef 结束的内容
pattern = re.compile('ab.+ef')
# findall(self, string: AnyStr, pos: int = ..., endpos: int = ...) -> list[Any]
result = pattern.findall(str)
print(result)
# ['abcd1234ef']
# 匹配 ab 与 ef 之间的内容
pattern = re.compile('ab(.+)ef')
result = pattern.findall(str)
print(result)
# ['cd1234']
'''
函数介绍:
1.re.compile():该函数用于生成一个正则表达式,也就是匹配的核心部分,用来定义你需要怎么匹配,匹配什么内容。
2.re.findall():该函数用于在指定的字符串中进行匹配。
'''
'''
总结:
re.compile('XXX.+X')
在一段文本或字符串中提取从某一位置XXX开始到某一位置X结束的特定内容
re.compile('XXX(.+)X') 或者 re.compile('XXX(.*)X')
在一段文本或字符串中提取从某一位置XXX之后到最后位置X之前的特定内容
re.compile('XXX(.+?)X')
在一段文本或字符串中提取从某一位置XXX开始到第一次出现X结束的特定内容
'''
'''
参考:
python利用正则表达式提取字符串
https://www.jb51.net/article/99453.htm
用python正则表达式提取字符串
https://www.cnblogs.com/rj81/p/5933838.html
python利用正则表达式提取文本中特定内容
https://www.cnblogs.com/ZhangHT97/p/13427325.html
'''