首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将regex对象与python中的列表进行比较?

如何将regex对象与python中的列表进行比较?
EN

Stack Overflow用户
提问于 2018-05-26 17:05:08
回答 1查看 48关注 0票数 0

我的代码是:

代码语言:javascript
复制
import re
x=["Set","Sets","ShowSets","Union","Intersect","SetUnion","SetIntersect"]
print (x)
while True:
    text_to_search = input('Introduce an instruction: ')

    for match1 in re.finditer('Sets?|ShowSet|ShowSets|Union|Intersect|SetUnion|SetIntersect',text_to_search):
        print("Instruction: ")
        #x.append(match1)
        print(match1)
    for match2 in re.finditer(r':=|{|}|;',text_to_search):
        print("Operator: ")
        print(match2)
    for match3 in re.finditer(r'[a-zA-Z0-9]+',text_to_search):
        if match3 in x:
            pass
        else:
            print("ID: ")
            print(match3)
    print(x)

我想要做的是打印所有不是指令的单词(避免打印集、集、ShowSets等),但问题是没有执行if match3 in x:,所以程序正在打印:“Set”、“Sets”、“ShowSets”、“Union”、“Intersect”、“SetUnion”、“SetIntersect”

代码语言:javascript
复制
Introduce an instrucción: Set Hi
Instruction: 
<_sre.SRE_Match object; span=(0, 3), match='Set'>
ID: 
<_sre.SRE_Match object; span=(0, 3), match='Set'>
ID: 
<_sre.SRE_Match object; span=(4, 6), match='Hi'>
['Set', 'Sets', 'ShowSets', 'Union', 'Intersect', 'SetUnion', 'SetIntersect']

而不是:

代码语言:javascript
复制
Introduce an instrucción: Set Hi
    Instruction: 
    <_sre.SRE_Match object; span=(0, 3), match='Set'>
 ID: 
    <_sre.SRE_Match object; span=(4, 6), match='Hi'>
    ['Set', 'Sets', 'ShowSets', 'Union', 'Intersect', 'SetUnion', 'SetIntersect']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-26 17:13:06

首先提取匹配的文本:

代码语言:javascript
复制
if match3.group() in x:
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50545172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档