重复字符串部分之间的值

时间:2016-04-29 21:06:21

标签: python python-2.7 python-2.x

假设我们有一个字符串aa的一部分看起来像ac5:9qr$28c#。 这种模式(value1:value2 $ value3#)重复。

现在,我的问题是:我如何查找这些值并将其提取出来?

注意:这些字符串部分不一定是特殊字符。

2 个答案:

答案 0 :(得分:1)

re.findall适用于此问题。

试试这个:

import re

data = 'abc:def$ghi#ac5:9qr$28c#1234:4567$89#'
result = re.findall(r'(.*?):(.*?)\$(.*?)#', data)
print result

结果:

[('abc', 'def', 'ghi'), ('ac5', '9qr', '28c'), ('1234', '4567', '89')]

答案 1 :(得分:0)

这样的事情应该做:

a = "ac5:9qr$28c#"

values = []
delimiters = [':','$','#']

while len(a) > 0:
    for delimiter in delimiters: 
        delimiterIndex = a.index(delimiter )
        newValue = a[0:delimiterIndex]
        values.append(newValue)
        a = a[delimiterIndex+1:]

print values

输出是:

['ac5', '9qr', '28c']

当然,你可以实现类似的东西来保留原来的' a'字符串。