gpt4 book ai didi

python - 使用正则表达式捕获文本直到第一次出现某个字符

转载 作者:行者123 更新时间:2023-12-04 21:51:36 28 4
gpt4 key购买 nike

考虑我有以下文字:Temp:C5E501374D0343090957F7E5929E765C931F7D3EC7A96189FDA88549D54D9E4E5DB3FC1C2, adfsafd1242412,
我想在 Temp: 之后捕获所有数据直到第一次出现 ,这意味着:C5E501374D0343090957F7E5929E765C931F7D3EC7A96189FDA88549D54D9E4E5DB3FC1C2
我尝试使用正则表达式 Temp:(.+,)没有成功
我如何告诉正则表达式 ,应该是第一个发现的?

最佳答案

要获取您需要的值(value),您可以尝试 use lazy matching dot ( .+? 匹配 1 个或多个字符 - 但尽可能少 - 是除换行符以外的任何字符):

Temp:(.+?),

由于懒惰匹配可能比您需要的更多,所以 negated character class ( [^,]+ 匹配 1 个或多个逗号以外的字符)看起来更可取:
Temp:([^,]+)

结果用捕获组(括号)捕获到组 1 中。

IDEONE sample code :
import re
p = re.compile(r'Temp:([^,]+)')
test_str = "Temp:C5E501374D0343090957F7E5929E765C931F7D3EC7A96189FDA88549D54D9E4E5DB3FC1C2, adfsafd1242412,"
print (re.search(p, test_str).group(1))

输出: C5E501374D0343090957F7E5929E765C931F7D3EC7A96189FDA88549D54D9E4E5DB3FC1C2
注意 基于环视的解决方案比您和我正在使用的捕获组更消耗资源。

关于python - 使用正则表达式捕获文本直到第一次出现某个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32082285/

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