如何在python中从格式化字符串中剪切子字符串?

如何在python中从格式化字符串中剪切子字符串?,python,string,Python,String,字符串格式为“”[DATE]记录标志:X1.X2.X3.X4.YEAR.NUM;”,其中数据是一个日期字符串;:和X1之间有一个或两个空格X1、X2、X4由一个或多个字符组成;X3由零个或多个字符组成YEAR和NUM分别为4位和3位 这是一个exmaple:s='[2011-03-13]记录标志:NW.SENSOR..MH1.2011.012;' 如何从s中剪切'NW'和'SENSOR'?使用str.split: >>> s = '[2011-03-13] record fla

字符串格式为“
”[DATE]记录标志:X1.X2.X3.X4.YEAR.NUM;”
,其中
数据
是一个日期字符串;
X1
之间有一个或两个空格
X1
X2
X4
由一个或多个字符组成;X3由零个或多个字符组成
YEAR
NUM
分别为4位和3位

这是一个exmaple:
s='[2011-03-13]记录标志:NW.SENSOR..MH1.2011.012;'


如何从
s
中剪切
'NW'
'SENSOR'

使用
str.split

>>> s = '[2011-03-13] record flag: NW.SENSOR..MH1.2011.012;'

>>> s.split(' ')[3].split('.')
['NW', 'SENSOR', '', 'MH1', '2011', '012;']

>>> out = s.split(' ')[3].split('.')

>>> out[0]
'NW'

>>> out[1]
'SENSOR'

使用
重新搜索

>>> s = '[2011-03-13] record flag: NW.SENSOR..MH1.2011.012;'

>>> out = re.search(r':\s+([^.]+)\.([^.]+)', s)

>>> out.group(1)
'NW'

>>> out.group(2)
'SENSOR'

使用一些拆分和剥离:

parts = s.split(":")[1].strip().split(".")
parts[0] # Should be NW
parts[1] # Should be SENSOR

佩弗特,我喜欢
re
解决方案。但是顺便说一句,为什么要在模式之前添加
r
,因为如果没有它,表达式也会给出很好的结果?@Lee No,
r
代表raw。它在那里,因此Python将字符串作为原始字符串,并将其原样传递给Regex,而无需任何内部操作。。