[英]How do I properly use the sub function of regular expression in Python?
所以我有一个像7.50x
的数字,我想转换为7.5x
。 我考虑过使用正则表达式。 我可以轻松地匹配此表达式,例如通过使用re.search('[0-9].[0-9]0x', string)
。 但是,我很困惑如何使用re.sub
方法替换每个这样的数字。 例如,第二个参数应该是什么?
re.sub('[0-9].[0-9]0x', ?, string)
re.sub(r'([0-9]\.[0-9])0x', r'\1x', num)
测试
>>> import re
>>> num="7.50x"
>>> re.sub(r'([0-9]\.[0-9])0x', r'\1x', num)
'7.5x'
r'\\1x'
这里\\1
是从第一个捕获组([0-9]\\.[0-9])
保存的值
例如,对于输入7.50x
,捕获组与7.5
相匹配(保存在\\1
0+(?![1-9])(?=[^.]*$)
试试看。看演示。
http://regex101.com/r/hQ9xT1/14
x=7.50x
re.sub(r"0+(?![1-9])(?=[^.]*$)","",x)
使用肯定的先行和后向断言。
>>> import re
>>> num="7.50x"
>>> re.sub(r'(?<=\d\.\d)0(?=x)', r'', num)
'7.5x'
(?<=\\d\\.\\d)
,数字0
之前的数字将采用此数字点数字格式。 并且匹配( 0
)之后的字符必须为x
\\.
匹配文字点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.