协助重新模块

时间:2016-10-07 00:08:15

标签: python

我需要在模式nr:或/ nr:之间提取所有这些字符串。有人可以帮帮我吗?

字符串是

nr:Organization/nr:Customer/nr:Agreement/nr:date/nr:coverage/nr:Premium/nr:Option/nr:OptionID

我期待的输出是

Organization, Customer, Agreement,...OptionID

3 个答案:

答案 0 :(得分:1)

如果你想在不使用“re”模块的情况下这样做,它看起来会起作用:

test_string = 'nr:Organization/nr:Customer/nr:Agreement/nr:date/nr:coverage/nr:Premium/nr:Option/nr:OptionID'
columns = [f[3:] for f in test_string.split('/')]
print(columns)

答案 1 :(得分:0)

使用re模块,split字符串并过滤掉长度为0的匹配:

import re

test_string = "nr:Organization/nr:Customer/nr:Agreement/nr:date/nr:coverage/nr:Premium/nr:Option/nr:OptionID"

columns = [x for x in re.split("/{0,1}nr:",test_string) if len(x) > 0]

print(columns)

['Organization', 'Customer', 'Agreement', 'date', 'coverage', 'Premium', 'Option', 'OptionID']

我希望这会有所帮助。

答案 2 :(得分:0)

这是一种使用正则表达式和拆分的方法:

import re

string = 'nr:Organization/nr:Customer/nr:Agreement/nr:date/nr:coverage/nr:Premium/nr:Option/nr:OptionID'

x = filter(None, re.split('/*nr:', string))
print x

正则表达式在'/'之前(或不在)之前查找nr:。由于re.split函数会留下一些空元素,因此对它应用filter将为您提供所需的输出。

另请参阅此处的操作:https://eval.in/656744