【发布时间】:2016-08-17 17:08:36
【问题描述】:
我有一个类似的字符串:
"[u'LOCATION_SLOT~-prep_in+*extend*to~prepc_according_to+expectancy~-nsubj+is~parataxis+NUMBER~nsubj+NUMBER_SLOT', u'LOCATION_SLOT~-prep_in+*extend*to~prepc_according_to+expectancy~-nsubj+is~parataxis+NUMBER~nsubj+NUMBER_SLOT']"
取自 Excel 文件。这看起来像一个数组,但因为它是从文件中提取的,所以它只是一个字符串。
我需要做的是:
a) 删除[ ]
b) 通过, 拆分字符串,从而实际创建一个新列表
c) 只取第一个字符串,即u'LOCATION_SLOT~-prep_in+*extend*to~prepc_according_to+expectancy~-nsubj+is~parataxis+NUMBER~nsubj+NUMBER_SLOT'
d) 将结果字符串的二元组创建为由空格吐出的实际字符串(而不是二元组):
LOCATION_SLOT~-prep_in+*extend*to~prepc_according_to *extend*to~prepc_according_to+expectancy~-nsubj expectancy~-nsubj+is~parataxis is~parataxis+NUMBER~nsubj NUMBER~nsubj+NUMBER_SLOT
我一直在玩的当前代码 sn-ps。
text = "[u'LOCATION_SLOT~-prep_in+*extend*to~prepc_according_to+expectancy~-nsubj+is~parataxis+NUMBER~nsubj+NUMBER_SLOT', u'LOCATION_SLOT~-prep_in+*extend*to~prepc_according_to+expectancy~-nsubj+is~parataxis+NUMBER~nsubj+NUMBER_SLOT']"
text = re.sub('^\[(.*)\]',"\1",text)
text = [text.split(",")[0]]
bigrams = [b for l in text for b in zip(l.split("+")[:-1], l.split("+")[1:])]
bigrams = [("+").join(bigram).encode('utf-8') for bigram in bigrams]
bigrams = (' ').join(map(str, bigrams))
bigrams = ('').join(bigrams)
我的正则表达式似乎什么也没返回。
【问题讨论】:
-
你的意思是
text在sub或split之后是空的吗? -
@Dhruv Ghulati:什么二元组?
标签: python regex string list n-gram