首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较regex对象,就像在python中使用flex一样?

如何比较regex对象,就像在python中使用flex一样?
EN

Stack Overflow用户
提问于 2018-05-25 16:56:50
回答 1查看 28关注 0票数 0

我有下面的代码,我想做的是,当它接收到来自text_to_search的输入时,它会发现如果它是一个指令,它不是一个指令( ID )或者是一个操作符,到目前为止,如果它创建了一条指令,它就会打印我,但是在ID部分它也会打印me Set,而不是jaja,那么我如何实现这一点呢?

代码语言:javascript
复制
text_to_search="Set Sets UnionShowSets jaja:={hi};"
import re
      t=re.search(r'Sets?|ShowSet|ShowSets|Union|Intersect|SetUnion|SetIntersect',text_to_search)
    s=re.search(r':=|{|}|;',text_to_search)
    d=t=re.search(r'[a-zA-Z0-9]+',text_to_search)
    if t:
        print("Instruction: ")
        print(t)
    else:
        print("ID: ")
        print(d)

    if s:
        print("Operator: ")
        print(s)

打印结果:

代码语言:javascript
复制
Instruction: 
<_sre.SRE_Match object; span=(0, 3), match='Set'>
Operator: 
<_sre.SRE_Match object; span=(27, 29), match=':='>

期望的打印结果:

代码语言:javascript
复制
Instruction: 
    <_sre.SRE_Match object; span=(0, 3), match='Set'>
Instruction: 
    <_sre.SRE_Match object; span=(0, 3), match='Sets'>
Instruction: 
    <_sre.SRE_Match object; span=(0, 3), match='Union'>
Instruction: 
    <_sre.SRE_Match object; span=(0, 3), match='ShowSets'>
ID: 
    <_sre.SRE_Match object; span=(0, 3), match='jaja'>
ID: 
    <_sre.SRE_Match object; span=(0, 3), match='hi'>
Operator: 
    <_sre.SRE_Match object; span=(0, 3), match='{'>
Operator: 
    <_sre.SRE_Match object; span=(0, 3), match='}'>
Operator: 
<_sre.SRE_Match object; span=(27, 29), match=':='>
Operator: 
<_sre.SRE_Match object; span=(27, 29), match=';'>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-25 17:27:58

我只是通过将不想再次打印的元素保存在列表中来修正它:

代码语言:javascript
复制
text_to_search="Set Sets UnionShowSets jaja:={hola};"
import re
x=[]

for match in re.finditer('Sets?|ShowSet|ShowSets|Union|Intersect|SetUnion|SetIntersect',text_to_search):
    print("Instruccion: ")
    print(match)
    x.append(match)
for match in re.finditer(r':=|{|}|;',text_to_search):
    print("Operador: ")
    print(match)
for match in re.finditer(r'[a-zA-Z0-9]+',text_to_search):
    if match in x:
        continue
    else:
        print("ID: ")
        print(match)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50533816

复制
相关文章

相似问题

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