重复字符串部分之间的值
Values between repeating string parts
假设我们有一个字符串a
。
a
的一部分看起来像 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')]
假设我们有一个字符串a
。
a
的一部分看起来像 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')]