我有各种单词列表,其中许多是嘈杂的。嘈杂,我的意思是它从一些非字母字符开始,如''',' - '。例如:“thisword,-thisword, - ”这个词,.thisword,可以是其他几个。
就像我们可以使用
删除ascii一样from string import ascii letter
string.lstrip(ascii_letters)
python中有没有类似的方法可以处理non_ascii而不使用正则表达式?
谢谢!
答案 0 :(得分:3)
为什么不使用string.puctuation
>>> from string import punctuation
>>> "-asdf".lstrip(punctuation)
'asdf'
>>> "'asdf".lstrip(punctuation)
'asdf'
>>> '"asdf'.lstrip(punctuation)
'asdf'
>>> ',asdf'.lstrip(punctuation)
'asdf'
答案 1 :(得分:2)
只保留字词
中的字母"".join([x for x in word if x.isalpha()])
答案 2 :(得分:2)
使用itertools.dropwhile
:
>>> def removes(s):
... return "".join(itertools.dropwhile(lambda x:not x.isalnum(),s))
...
>>> removes("---thisword")
'thisword'
>>> removes("-^--thisword")
'thisword'
>>> removes("thisword")
'thisword'
>>> removes("...thisword")
'thisword'
答案 3 :(得分:1)
否定字符集:
>>> from string import ascii_letters
>>> non_letter = ''.join(set(map(chr, range(128))) - set(ascii_letters))
>>> s = '-hello'
>>> s.lstrip(non_letter)
'hello'
答案 4 :(得分:0)
我建议使用while循环修剪每个字符串,直到它击中ascii。将非asciis加载到列表中然后搜索,直到您点击ascii。将其实现为一个函数,以便您可以有效地抽象出任务。
希望有所帮助。