我有以下代码根据下面概述的情况提取给定字符串中的第一组和最后一组数字。它有效,但似乎不是最佳的:import re# case 1pattern = '\d+\ \d+'string = 'Hello 999 888999'test = re.findall(pattern, string, flags=0)[0].split()print('{0}, {1}'.format(test[0], test[len(test)-1]))# case 2pattern = '\d+\ \d+;\d+ \d+'string = 'How are things 999 888999;222 444'test = re.findall(pattern, string, flags=0)[0].split()print('{0}, {1}'.format(test[0], test[len(test)-1]))# case 3pattern = '\d+\ \d+;\d+ \d+;\d+ \d+'string = 'It is nice 999 888999;222 444;33 55'test = re.findall(pattern, string, flags=0)[0].split()print('{0}, {1}'.format(test[0], test[len(test)-1]))# case 4pattern = '\d+\ \d+;\d+ \d+;\d+ \d+;\d+ \d+'string = 'Please help yourself 999 888999;222 444;33 55;44 6661'test = re.findall(pattern, string, flags=0)[0].split()print('{0}, {1}'.format(test[0], test[len(test)-1]))这4种情况是:任意数量的单词后跟数字后跟空格后跟数字任意数量的单词后跟数字后跟空格后跟以“;”分隔的数字 后跟空格后跟数字任意数量的单词后跟数字后跟空格后跟以“;”分隔的数字 后跟空格后跟以“;”分隔的数字 后跟空格后跟数字等等。关于如何一口气做到这一点的任何建议?
添加回答
举报
0/150
提交
取消