[英]regex match all words in a python list not preeced by @
我目前正在使用此代码在列表中搜索所有单词,但我需要它来忽略@之前的单词。
[@apples, peaches, oranges, @guava]
只返回:
[peaches, oranges]
words = re.compile(r'\\w+')
有人可以帮我做同样的事情吗?
为什么正则表达式没有它似乎是一个相当简单的任务,而正则表达式似乎比需要的负担更大,为什么不这样做呢?
f = []
for w in l:
if not w.startswith("@"):
f.append(w)
尝试这个:
[x for x in l if not x.startswith('@') ]
是l
原始的,未经过滤的名单。
或者,如果要使用生成器而不是实际列表,请用括号替换方括号。
您可以简单地使用负向后看。 这样的模式应该起作用:
(?<!@)\b\w+\b
请注意,这里有\\b
(单词边界)以确保它与整个单词匹配-没有它们,它将与pples
和uava
匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.