带有“;”的任意数量的数字组的正则表达式 和分组之间的“\s”

我有以下代码根据下面概述的情况提取给定字符串中的第一组和最后一组数字。它有效,但似乎不是最佳的:


import re


# case 1

pattern = '\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 2

pattern = '\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 3

pattern = '\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 4

pattern = '\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种情况是:

  1. 任意数量的单词后跟数字后跟空格后跟数字

  2. 任意数量的单词后跟数字后跟空格后跟以“;”分隔的数字 后跟空格后跟数字

  3. 任意数量的单词后跟数字后跟空格后跟以“;”分隔的数字 后跟空格后跟以“;”分隔的数字 后跟空格后跟数字

  4. 等等。

关于如何一口气做到这一点的任何建议?


宝慕林4294392
浏览 162回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python