我正在使用带有python框架的正则表达式来填充版本号中的特定数字:
10.2.11
我想将第二个元素转换为零填充,所以它看起来像这样:
11年2月10日
我的正则表达式如下:
^(\d{2}\.)(\d{1})([\.].*)
如果我只是回流匹配的组,我会使用这个字符串:
\1\2\3
当我使用我最喜欢的正则表达式测试工具(http://kodos.sourceforge.net/)时,我无法将其填充到第二组。我试过\ 1 \ 20 \ 3,但是它将第二个引用解释为20,而不是2.
由于我正在使用它的库,我需要它是一个单行。该库采用正则表达式字符串,然后是一个字符串,用于替换它。
我假设我只需要转义匹配的组字符串,但我无法弄明白。提前感谢您的帮助。
答案 0 :(得分:3)
完全不同的方法怎么样?
nums = version_string.split('.')
print ".".join("%02d" % int(n) for n in nums)
答案 1 :(得分:1)
试试这个:
(^\d(?=\.)|(?<=\.)\d(?=\.)|(?<=\.)\d$)
并将0\1
替换为匹配。这将使任何数字长至少两位数。
答案 2 :(得分:1)
如何从正则表达式中删除.
?
^(\d{2})\.(\d{1})[\.](.*)
替换为:
\1.0\2.\3
答案 3 :(得分:0)
您的图书馆是否支持named groups?这可能会解决您的问题。