您好我正在尝试删除以反斜杠开头的所有令牌。下面是我的代码,并没有删除令牌。另外我怎么能用正则表达式做到这一点?
tokens = [u'#hamandcheesecroissant', u'\u1026',u'#whoopwhoop', u'\u2026', u'jose', u'mourinho', u'refusing', u'acknowledge', u'lost']
new_tokens = []
for token in tokens:
if token.startswith('\\'):
new_tokens.append(token)
答案 0 :(得分:1)
u'\u1026'
是一个包含单个字符的unicode字符串。该字符串没有实际的反斜杠字符。我建议您对Python字符串中的\u
语法进行一些研究。
答案 1 :(得分:0)
当Unicode字符被编码时,它们占用2个或更多字节。因此,找出字符串是否包含Unicode字符的一种方法是比较长度:
>>> tokens = [u'#hamandcheesecroissant', u'\u1026',u'#whoopwhoop', u'\u2026', u'jose', u'mourinho', u'refusing', u'acknowledge', u'lost']
>>> [t for t in tokens if (len(t)==len(t.encode()))]
['#hamandcheesecroissant', '#whoopwhoop', 'jose', 'mourinho', 'refusing', 'acknowledge', 'lost']
您可以修改上面的逻辑来过滤单字符Unicode字符串。