如何在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,而无需任何内部操作。。