2024-03-29 15:03:57 发布
网友
我试图用整数替换字符串(1.0、2.0等)中的所有无用浮点数。所以我将一个类似"15.0+abc-3"的字符串转换为"15+abc-3"。 你知道怎么做吗?在
"15.0+abc-3"
"15+abc-3"
我希望你能理解我的想法。如果你不想问。
(?<=\d)\.0+\b
您可以简单地使用它并通过re.sub替换为empty string。在
re.sub
empty string
参见演示。在
https://regex101.com/r/hI0qP0/22
您可以使用re.sub:
>>> s="15.0+abc-3" >>> >>> import re >>> re.sub(r'\b(\d+)\.0+\b',r'\1',s) '15+abc-3' >>> s="15.0000+abc-333.0+er1102.05" >>> re.sub(r'\b(\d+)\.0+\b',r'\1',s) '15+abc-333+er1102.05'
\d+将匹配长度为1或更大的任何数字,并且在sub函数中(\d+)\.0将匹配具有无用小数的数字零。那个将替换为第一个组\1,即您的号码(在捕获组(\d+))内)。在
\d+
sub
(\d+)\.0
\1
(\d+)
并且\b是单词边界,它使正则表达式与某些数字不匹配,比如1102.05!在
\b
1102.05
您可以简单地使用它并通过
re.sub
替换为empty string
。在参见演示。在
https://regex101.com/r/hI0qP0/22
^{pr2}$您可以使用
re.sub
:\d+
将匹配长度为1或更大的任何数字,并且在sub
函数中(\d+)\.0
将匹配具有无用小数的数字零。那个将替换为第一个组\1
,即您的号码(在捕获组(\d+)
)内)。在并且
\b
是单词边界,它使正则表达式与某些数字不匹配,比如1102.05
!在相关问题 更多 >
编程相关推荐