Python:仅从字符串中提取格式为00-00-00的数字

时间:2018-12-06 06:15:54

标签: python

我有一个像这样的字符串:Test Step 01-08-04 U upper 100 m/s

当前我使用:

self.current_xtp_test_case = re.findall("\d+", test_case.attrib["name"])
self.current_xtp_test_case = ''.join(map(str,self.current_xtp_test_case[-1:]))
self.current_xtp_test_case = self.current_xtp_test_case.lstrip("0")

上面的代码应该获得00-00-00模式中的最后一个数字,由于我需要删除4,所以最后应该是0。但是,现在有了我正在处理的数据,有时与上面的示例一样,00-00-00之外可能还有一个数字,我在字符串的末尾有100,这弄乱了我当前代码的逻辑。

如何更改代码,以便只能选择模式01-03-04中的最后一个数字-我只想选择04部分。希望这有意义吗?

2 个答案:

答案 0 :(得分:0)

您可以这样做:

s = ['Test Step 00-00-00 U upper 0 m/s',
     'Test Step 00-00-09 U upper 100 m/s',
     'Test Step 01-08-04 U upper 150 m/s']
[re.findall('[0-9]{2,}\-[0-9]{2,}\-([0-9]{2,})',x)[0] for x in s]

输出:

['00', '09', '04']

希望有帮助;)

答案 1 :(得分:0)

根据我对问题的了解,这就是您要问的问题

import re

string_to_parse = "Test Step 01-08-04 U upper 100 m/s"
find_result = re.findall('\d+-\d+-\d+', my_string)[0]
print(find_result[-1])