替换python中的特定字符串

2024-10-01 15:29:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用“w32inl30in”替换大量文本中出现的所有“w32l30”。W,L后面的数字也不同。你知道吗

我想用这个正则表达式

[W]([-+]?\d*\.\d+|\d+)
[L]([-+]?\d*\.\d+|\d+)

但是这些只会在每个W和L之后找到数字,所以替换每个事件仍然是很费劲和非常耗时的,所以我想知道是否有一种方法可以直接在regex中这样做。你知道吗


Tags: 方法文本事件数字regex耗时w32inl30inw32l30
1条回答
网友
1楼 · 发布于 2024-10-01 15:29:12

您可以使用捕获组并简化regex。接下来,我们可以使用backref进行替换。比如:

import re

RGX = re.compile(r'([WL]([-+]?\d*\.\d+|\d+))(in)?')
result = RGX.sub(r'\1in', some_string)

\1用于引用第一个捕获组:我们用[WL]([-+]?\d*\.\d+|\d+)捕获的字符串的结果。最后一部分(in)?也可以选择匹配单词in,这样在已经有in的情况下,我们只需用相同的值替换它。你知道吗

因此,如果some_string是例如:

>>> some_string
'A W2 in C3.15 where L2.4in and a bit A4'
>>> RGX.sub(r'\1in', some_string)
'A W2in in C3.15 where L2.4in and a bit A4'

相关问题 更多 >

    热门问题