使用Python Regexp拆分字符串

时间:2015-04-27 23:05:18

标签: python regex

如果我有一个字符串:

"|CLL23|STR. CALIFORNIA|CLL12|AV. PHILADELFIA 438|CLL10|AV. 234 DEPTO 34|" 

我需要将字符串形式分开:

CLL23|STR.CALIFORNIA

CLL12|AV. TEXAS 345

CLL10|AV. 234 DEPTO 24

请尝试以下表格:

r=re.compile('(?<=[|])([\w]+)')

v_sal=r.findall(v_campo)
print v_sal

结果:

['CLL23', 'CLL12', 'CLL10']

那样你可以在Python中获得其余的字符串吗?

2 个答案:

答案 0 :(得分:1)

让我们定义你的字符串:

>>> s = "|CLL23|STR. CALIFORNIA|CLL12|AV. PHILADELFIA 438|CLL10|AV. 234 DEPTO 34|"

现在,让我们打印格式化的表单:

>>> print('\n'.join('CLL' + word.rstrip('|') for word in s.split('|CLL') if word))
CLL23|STR. CALIFORNIA
CLL12|AV. PHILADELFIA 438
CLL10|AV. 234 DEPTO 34

以上内容分为|CLL。这似乎适用于您的示例输入。

答案 1 :(得分:0)

另一个简单的解决方案是split()每个'|'的字符串,然后以块的形式打印它们:

s="|CLL23|STR. CALIFORNIA|CLL12|AV. PHILADELFIA 438|CLL10|AV. 234 DEPTO 34|"

s1=filter(None, s.split('|')) #split string and filter empty strings

for x,y in zip(s1[0::2], s1[1::2]):
    print x + '|' + y

<强>输出:

>>> 
CLL23|STR. CALIFORNIA
CLL12|AV. PHILADELFIA 438
CLL10|AV. 234 DEPTO 34