gpt4 book ai didi

python - 为什么我不能使用正则表达式挖出某些字符串的某些 ID?

转载 作者:太空狗 更新时间:2023-10-30 01:04:11 24 4
gpt4 key购买 nike

我试图从一些字符串中找出一些 ID。我想从每个字符串中获取的部分在 bd-? 之间。后者并不总是存在,因此我希望将此标记设为 ? 可选。我知道我可以使用字符串操作实现相同的目的,但我希望使用正则表达式来实现相同的目的。

我试过:

import re

content = """
id-HTRY098WE
id-KNGT371WE?witkl
id-ZXV555NQE?phnu
eh-VCBG075LK
"""
for item in re.findall(r'id-(.*)\??',content):
print(item)

输出结果:

HTRY098WE
KNGT371WE?witkl
ZXV555NQE?phnu

预期输出:

HTRY098WE
KNGT371WE
ZXV555NQE

如何从一些字符串中抓取 ID

最佳答案

您可以使用带有否定字符类的捕获组来匹配问号或空白字符。

您首先尝试的模式匹配到使用 .* 的字符串结尾。然后在字符串的末尾,它尝试匹配一个可选的问号 \??。这将成功(因为它是可选的)导致匹配前 3 个示例的整个字符串。

id-([^?\s]+)

Regex demo | Python demo

例如

import re

content = """
id-HTRY098WE
id-KNGT371WE?witkl
id-ZXV555NQE?phnu
eh-VCBG075LK
"""
for item in re.findall(r'id-([^?\s]+)',content):
print(item)

结果

HTRY098WE
KNGT371WE
ZXV555NQE

或者只匹配字母数字:

id-([A-Z0-9]+)

Regex demo

关于python - 为什么我不能使用正则表达式挖出某些字符串的某些 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57253913/

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