我有一个像这样的字符串: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
部分。希望这有意义吗?
答案 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])