Python正则表达式替换连字符的空格

时间:2012-11-13 16:42:14

标签: python regex

我得到一个可能有一个或多个日期的吊球对象。如果第一个日期为空,则将日期视为表格我得到一个chr(20)。数组的ex第3个元素有一个日期,前两个空的看起来类似于“”,“”,“01/01/01 01:01:01”。我想将日期时间字符串中的“”更改为不同的字符(“ - ”),这样我就可以轻松区分空元素和实际日期时间值,中间有空格。全新的python和正则表达式不会被认为是我的强项。

>>> x = '01/01/12 17:11:11'
>>> y = re.sub( r"\d{2} \d{2}", r"\d{2}-\d{2}",x)
>>> print (x,y)
01/01/12 17:11:11 01/01/\d{2}-\d{2}:11:11

4 个答案:

答案 0 :(得分:3)

使用lookahead和lookbehind断言:

>>> import re
... x = '01/01/12 17:11:11 random junk 01/08/10 12:01:33'
... y = re.sub(r'(?<=\d{2}) (?=\d{2})', '-', x)
... y
103: '01/01/12-17:11:11 random junk 01/08/10-12:01:33'

答案 1 :(得分:2)

你需要正则表达式吗?那么'-'.join(x.split())呢?

否则,您可能需要使用群组:

y = re.sub( r"(\d{2})\s+(\d{2})", r"\1-\2",x)

答案 2 :(得分:0)

你不能只使用:

x = x.replace(' ', '-')

答案 3 :(得分:0)

正则表达式在这里过度。只需使用string.replace()函数:

>>> a='01/01/12 17:11:11'
>>> a.replace(' ','-')
'01/01/12-17:11:11'