重复字符串部分之间的值

Values between repeating string parts

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

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

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

应该这样做:

a = "ac5:9qrc#"

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' 字符串。

re.findall 很适合这个问题。

试试这个:

import re

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

结果:

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