gpt4 book ai didi

python - 是否在同一行中重新匹配和分组捕获?

转载 作者:行者123 更新时间:2023-12-03 17:00:14 24 4
gpt4 key购买 nike

Python 中有没有办法在同一行中执行 if 重新匹配和分组捕获?

在 PERL 中,我会这样做:

my $line = "abcdef";

if ($line =~ m/ab(.*)ef/) {
print "$1\n";
}

输出:
badger@pi0: scripts $ ./match.py
cd

但我能在 Python 中找到的最接近的方法是这样的:
import re

line = 'abcdef'

if re.search('ab.*ef', line):
match = re.findall('ab(.*)ef', line)
print(match[0])

输出:
badger@pi0: scripts $ ./match.pl
cd

这似乎必须进行两次比赛。

最佳答案

只需删除 search .你不需要它。

matches = re.findall('ab(.*)ef', line)
print(matches)

或者,如果您只对第一场比赛感兴趣,请删除 findall :
match = re.search('ab(.*)ef', line)
if match:
print(match.group(1)) # 0 is whole string, 1 is first capture

关于python - 是否在同一行中重新匹配和分组捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62062352/

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