gpt4 book ai didi

python - 正则表达式和组的交集

转载 作者:太空宇宙 更新时间:2023-11-04 03:15:06 28 4
gpt4 key购买 nike

我需要使用正则表达式实现替换,仅当点不在两位数之间时才在点后添加一个空格。

a.a -> a. a
7.7 -> 7.7

为了实现它,我有几个规则,这里是其中之一:

text = (re.compile(u'(\D)(\.)(\D)')).sub('\\1\\2 \\3', text)

我希望在非数字符号之间的点之后替换添加空格,但对于输入

a.b.c.d.e

结果是

a. b.c. d.e

所以有些符号之间没有空格。看起来'a.b'首先匹配,然后'b'不作为'b.c.d'的一部分处理。是否可以修复此行为?

谢谢!

最佳答案

您的正则表达式与重叠字符串不匹配。您可以使用 lookaround基础正则表达式,以使其也与重叠的字符串匹配:

>>> regex = re.compile(u'(?<=\D)(\.)(?=\D)')
>>>
>>> regex.sub(r'\1 ', "a.b.c.d.e")
'a. b. c. d. e'

关于python - 正则表达式和组的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36521594/

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