通过特定字母拆分字符串,同时将其保留在字符串中

时间:2018-09-15 12:57:04

标签: python

我正在尝试按特定字母(在这种情况下为“ r”,“ g”和“ b”)分割字符串,以便稍后将其附加到列表中。这里要注意的是,我也希望将字母也复制到列表中。

string = '1b24g55r44r'

我想要什么:

[[1b], [24g], [55r], [44r]]

1 个答案:

答案 0 :(得分:7)

您可以使用findall

import re

print([match for match in re.findall('[^rgb]+?[rgb]', '1b24g55r44r')])

输出

['1b', '24g', '55r', '44r']

正则表达式匹配:

  • [^rgb]+?一次或多次都不是rgb的一切
  • 后跟[rgb]之一。

如果您需要将结果作为单例列表,则可以这样做:

print([[match] for match in re.findall('[^rgb]+?[rgb]', '1b24g55r44r')])

输出

[['1b'], ['24g'], ['55r'], ['44r']]

此外,如果字符串仅由数字rgb组成,您可以这样做:

import re

print([[match] for match in re.findall('\d+?[rgb]', '1b24g55r44r')])

上述正则表达式的唯一变化是\d+?,这意味着匹配一位或多位数字。

输出

[['1b'], ['24g'], ['55r'], ['44r']]