在Python中获取子字符串
我使用以下字符串表示电子邮件主题的变量:在Python中获取子字符串,python,regex,Python,Regex,我使用以下字符串表示电子邮件主题的变量: Snap: Processor 'ir.basisswap-1702|sydney-ir.basisswap-ricsxml-location_mapping' for '20181231' failed [Production2] 和Snap:'ir.broker.caplet.vol'RBS数据值检查失败[生产] 所需输出: 我想获取Snap:和failed之间的值 处理器'ir.basisswap-1702 |悉尼ir.basisswap-r
Snap: Processor
'ir.basisswap-1702|sydney-ir.basisswap-ricsxml-location_mapping' for
'20181231' failed [Production2]
和Snap:'ir.broker.caplet.vol'RBS数据值检查失败[生产]
所需输出:
我想获取Snap:
和failed之间的值
处理器'ir.basisswap-1702 |悉尼ir.basisswap-ricsxml-location_mapping'用于'20181231'
和'ir.broker.caplet.vol'RBS数据值检查
regex1 = r'Snap:\s*(\S+)'
a=re.findall(regex1 ,mail["Subject"])
实际输出:
第一个处理器为
Processor
,第二个处理器为ir.broker.caplet.vol
\S+
仅匹配一系列非空白字符,因此匹配在下一个空格处结束
如果要匹配到单词失败
,请使用:
regex1 = r'Snap:\s*(.+?)\s+failed'
您需要使用一个非贪婪的+?
量词,以便它只匹配第一个失败的
如果主题包含换行符,还应使用
re.DOTALL
标志,以便
匹配换行符。\S+
仅匹配一系列非空白字符,因此匹配在下一个空格处结束
如果要匹配到单词失败
,请使用:
regex1 = r'Snap:\s*(.+?)\s+failed'
您需要使用一个非贪婪的+?
量词,以便它只匹配第一个失败的
如果主题包含换行符,您还应该使用
re.DOTALL
标志,以便
与换行符匹配。您只捕获到(不包括)下一个空格的内容。我没有一个合适的键盘来正确回答问题,但也许这会让你继续。你只捕捉到下一个空间(不包括)的东西。我没有一个合适的键盘来正确回答问题,但也许这会让你走。