a = ['pear', 'apple?orange']
或
a = ['pear', 'apple!orange']
问号和引号可以是任何非字母或非数字字符(<,?,<,#)
。
如果我想删除非字母字符并列出以下列表:
b = ['apple', 'orange']
我该怎么办?使用a.remove
或`a.split?
我正在使用python 3。
答案 0 :(得分:1)
改为使用re.split()
:
import re
not_letters = re.compile(r'[^a-zA-Z]')
b = not_letters.split(a[1])
演示:
>>> import re
>>> not_letters = re.compile(r'[^a-zA-Z]')
>>> a = ['pear', 'apple?orange']
>>> not_letters.split(a[1])
['apple', 'orange']
>>> a = ['pear', 'apple!orange']
>>> not_letters.split(a[1])
['apple', 'orange']
答案 1 :(得分:0)
如果您希望支持Unicode的正则表达式匹配非字母字符:
non_letters = re.compile('[\\W\\d_]', flags = re.UNICODE)
non_letters.split('apple!orange')
non_letters.split('p\xEAche0poire')