【发布时间】:2020-04-29 11:41:49
【问题描述】:
我的文本文件中有超过 2000 行的字符串,例如:
cool.add.come.ADD_COPY
add.cool.warm.ADD_IN
warm.cool.warm.MINUS
cool.add.go.MINUS_COPY
我有一个包含 200 多个匹配词的列表,例如:
store=['ADD_COPY','add.cool.warm.ADD_IN', 'warm.cool.warm.MINUS', 'MINUS_COPY']
我在代码中使用正则表达式
def all(store, file):
lst=[]
for match in re.finditer(r'[\w.]+', file):
words = match.group()
if words in store:
lst.append(words)
return lst
然后我在一个循环中检查需求。
我得到的输出:
add.cool.warm.ADD_IN
warm.cool.warm.MINUS
如果我将标识符更改为 \w+,那么我只会得到:
ADD_COPY
MINUS_COPY
需要的输出:
add.cool.warm.ADD_IN
warm.cool.warm.MINUS
ADD_COPY
MINUS_COPY
【问题讨论】:
-
@RishiDev 绝对不是,字符类中的
.总是匹配文字. -
这个问题包含重现问题的所有细节。它只是漏掉了两个冒号。
标签: python regex python-3.x nlp regex-negation