用Python编程。
我有两个字符串组成的列表:
示例:
list1 = ['a ',
'ab ',
'ba c',
' a b ',
'abd ']
list2 = ['$ ',
'€& ',
'€% &',
' $ € ',
'€&$ ']
实际问题在这两个列表中都有5个以上的元素。目标是:
1. to remove elements like: 'ba c', ' a b ' from list1
2. to remove elements like: '€% &', ' $ € ' from list2
我能够分两个步骤实现目标1:
步骤1:
list1[:] = [word for word in list1 if not (word[0] == ' ')]
第2步:
import re
regex1 = r"\s[\w]\s*"
list1[:] = [word for word in list1 if not (re.search(regex1, word))]
对于list2,我能够:
list2[:] = [word for word in list2 if not (word[0] == ' ')]
,它删除元素,例如
' $ € '
但
regex2 = r"\s[\W]\s*" # on list 2
不删除元素,例如
'€% &'
问题:
删除元素的正则表达式是什么,例如:
'ba c', ' a b ', '€% &', ' $ € '
如果存在以下模式,则从列表中删除该元素:
任何帮助都是非常感谢的。谢谢。:)
发布于 2019-09-03 04:51:18
如果模式要匹配左对齐的单词,代码可能如下所示:
list12[:] = [word for word in list12 if re.match(r'^\S+\s*$', word)]
此代码将只匹配最后包含空格的字符串。结果是:
a
ab
abd
$
€&
€&$
https://stackoverflow.com/questions/57771894
复制相似问题