【问题标题】:conditional regex in python string matchingpython字符串匹配中的条件正则表达式
【发布时间】:2017-12-23 19:24:16
【问题描述】:
pattern=re.compile(r'item (?(1)2|3)')
n=re.findall(pattern, 'item 2 item 3')

输出是: ['项目 2',​​'项目 3'] 但我希望它只是第 2 项,以防它出现在字符串中或第 3 项,以防第 2 项不存在。 对我的错误的解释以及解决方案会很有帮助。

【问题讨论】:

    标签: python regex conditional


    【解决方案1】:

    这是你想要的吗?

    if bool(re.search('item 2', word)):
        n=re.findall('item 2', word)
    else:
        n=re.findall('item 3', word)
    

    【讨论】:

    • 是,但没有 if else 子句,带有条件正则表达式。
    【解决方案2】:

    这是你要找的吗?

    import re
    
    itemlist = ["pickles", "item 2", "item3"]
    text = "item 3 item 2"
    
    for item in itemlist:
        if re.search(item, text):
            print (item)
            break
    

    遍历有序列表,如果找到匹配项。

    item 2
    

    【讨论】:

    • 其实我想要这样:- 如果第 2 项存在:仅匹配第 2 项,否则:仅匹配第 3 项。因此我需要使用条件正则表达式
    猜你喜欢
    • 2020-11-29
    • 2011-11-28
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 2012-06-05
    • 2013-12-25
    相关资源
    最近更新 更多