gpt4 book ai didi

python - 用于从列表中查找特定字符串的正则表达式格式

转载 作者:行者123 更新时间:2023-11-28 22:12:02 25 4
gpt4 key购买 nike

这不是作业!

你好,

只是一个关于 Regex 格式的快速问题。

我有一个不同类(class)的列表。

L = ['CI101', 'CS164', 'ENGL101', 'I-', 'III-', 'MATH116', 'PSY101']

我一直在寻找一种格式来查找所有以 IIIIII 开头的单词。这是我所做的。 (我用的是python fyi)

for course in L:
if re.search("(I?II?III?)*", course):
L.pop()

我了解到正则表达式中的 ? 表示可选。因此,我正在考虑让 IIIIII 成为可选的,并让 * 包含以下内容。但是,它似乎没有按我的预期工作。什么是更好的工作格式?

谢谢

最佳答案

这是您应该使用的正则表达式:

^I{1,3}.*$

click here to see example

^ 表示行首。 I{1,3} 表示重复 I 1 到 3 次。 .* 表示任何其他字符串。 $ 表示一行的尾部。因此,此正则表达式将匹配所有以 IIIIII 开头的单词。

看看你的正则表达式,首先,你没有 ^ 标记,所以它将匹配 I 任何地方。第二,?只会影响前一个字符,所以第一个I是可选的,第二个I不是,然后是第三个I是可选的,第四个和第五个I不是,第六个I是可选的。最后,在* 中使用括号,这意味着括号中的表达式将重复多次,包括0 次。所以它将匹配 0 个 I,或者至少 3 个 I

your regex

关于python - 用于从列表中查找特定字符串的正则表达式格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252884/

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