繁体   English   中英

正则表达式匹配不以@开头的python列表中的所有单词

[英]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 (单词边界)以确保它与整个单词匹配-没有它们,它将与pplesuava匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM