简体   繁体   English

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

[英]How to cut a substring from a formated string in python?

The string is formated as '[DATE] record flag: X1.X2.X3.X4.YEAR.NUM;' 该字符串的格式为'[DATE] record flag: X1.X2.X3.X4.YEAR.NUM;' , where DATA is a date string; ,其中DATA是日期字符串; there is one or two spaces between : and X1 ; 之间存在的一个或两个空间 :X1 ; X1 , X2 , X4 are composed of one or more chars ; X1X2X4一个或多个字符组成 X3 consisits of zero or more chars ; X3由零个或多个字符组成 YEAR and NUM are 4 and 3 digits , respectively. YEARNUM分别是4位和3位数字

Here is an exmaple: s = '[2011-03-13] record flag: NW.SENSOR..MH1.2011.012;' 这是一个示例: s = '[2011-03-13] record flag: NW.SENSOR..MH1.2011.012;'

How do I cut 'NW' and 'SENSOR' from s ? 如何从s剪切'NW''SENSOR'

Using str.split : 使用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'

Using re.search : 使用re.search

>>> 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'

Use some splitting and stripping: 使用一些拆分和剥离:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM