Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中获取子字符串_Python_Regex - Fatal编程技术网

在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
标志,以便
与换行符匹配。

您只捕获到(不包括)下一个空格的内容。我没有一个合适的键盘来正确回答问题,但也许这会让你继续。你只捕捉到下一个空间(不包括)的东西。我没有一个合适的键盘来正确回答问题,但也许这会让你走。