gpt4 book ai didi

python - 正则表达式组和 * 通配符可以一起使用吗?

转载 作者:太空狗 更新时间:2023-10-30 00:57:07 25 4
gpt4 key购买 nike

有没有什么方法可以将组和正则表达式的 * 特性结合起来,以起到分词器/拆分器的作用。我试过这个:

my_str = "foofoofoofoo"
pattern = "(foo)*"
result = re.search(pattern, my_str)

我希望我的小组看起来像

("foo", "foo", "foo", "foo")

但事实并非如此。我对此感到惊讶,因为?和组功能一起工作:

my_str= "Mr foo"
pattern = "(Mr)? foo"
result = re.search(pattern, my_str)

最佳答案

问题是您重复了唯一的捕获组。这意味着你只有一个括号 ==> 一个捕获组,并且每次匹配时都会覆盖这个捕获组。

参见 Repeating a Capturing Group vs. Capturing a Repeated Group在 regular-expression.info 上获取更多信息。 (但是捕获一个重复的组也不是你想要的)

因此,在您的正则表达式完成后,您的捕获组 1 将包含最后找到的“foo”。

这会给你预期的结果:

my_str = "foofoofoofoo"
pattern = "foo"
result = re.findall(pattern, my_str)

结果是一个列表 ['foo', 'foo', 'foo', 'foo']

关于python - 正则表达式组和 * 通配符可以一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11409236/

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