gpt4 book ai didi

Python,正则表达式 : Is it possible to have 2 ending anchors?

转载 作者:太空宇宙 更新时间:2023-11-03 16:27:05 24 4
gpt4 key购买 nike

我正在使用这个正则表达式:

(r'(?<=DESCR:).*?(?=")')

从如下格式的日志中检索数据

 DESCR: "Cisco ASR1004 Chassis"

NAME: "CISCO2951/K9", DESCR: "CISCO2951/K9 chassis, Hw Serial#: FTX1619AK8E, Hw Revision: 1.1"

我想要一个具有这种逻辑的声明。

查找在 'DESCR:' 之后和 ',' 之前开始的字符串 OR '''

最佳答案

我来回答一下标题中的问题,主要是:

Is it possible to have 2 ending anchors?

如果通过 anchor ,您了解一些刚刚检查但未使用的上下文,是的,您可以在lookahead中使用交替。

如果你想匹配a之前bcd ,使用a(?=b|cd) .

因此,您的正则表达式可以更改为 r'(?<=DESCR:).*?(?=\'|,)' ,或者更好的是,可以将交替转换为字符类:r'(?<=DESCR:).*?(?=[\',])' .

但是,环顾没有任何意义,因为我们可以使用捕获组来获取子匹配值:

r'DESCR:(.*?)[\'",]'

请参阅regex demo

参见Python demo :

import re
p = re.compile(r'DESCR:\s*"(.*?)[\',"]')
s = "NAME: \"CISCO2951/K9\", DESCR: \"CISCO2951/K9 chassis, Hw Serial#: FTX1619AK8E, Hw Revision: 1.1\"\nDESCR: \"Cisco ASR1004 Chassis\""
print(p.findall(s))

关于Python,正则表达式 : Is it possible to have 2 ending anchors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37889435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com