gpt4 book ai didi

Python 正则表达式 finditer 的第二组被第一个捕获组忽略

转载 作者:行者123 更新时间:2023-12-01 03:53:06 25 4
gpt4 key购买 nike

例如,我有以下字符串。

input = "a b c d e f 1 2 3 4"

我有以下正则表达式代码。

input = re.sub(r"([0-9])\s+([0-9])", "\1\2", input)

这基本上是试图删除数字之间的空格。

但是,运行该代码后,我得到了以下结果。

input = "a b c d e f 12 34"

2 和 3 之间的空格未被替换。

有没有办法解决这个问题而不需要运行两次子程序?

最佳答案

由于两个空格分隔的数字匹配,因此在下一场比赛中不会再次匹配。你能做的就是使用positive look ahead assertion对于第二个数字。 Aldo 您可以使用 \d 短句柄来表示数字组 [0-9]

input = re.sub(r"(\d)\s+(?=\d)", "\1", input)
<小时/>

Regex explanation here.

Regular expression visualization

关于Python 正则表达式 finditer 的第二组被第一个捕获组忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37926542/

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