1

我得到一个可能有一个或多个日期的 lob 对象。如果第一个日期为空,则将日期视为表格,我得到一个 chr(20)。ex 数组的第三个元素有一个日期,前两个空的日期看起来类似于“”、“、”、“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

4 回答 4

3

使用前瞻和后瞻断言:

>>> 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'
于 2012-11-13T16:46:51.637 回答
2

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

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

y = re.sub( r"(\d{2})\s+(\d{2})", r"\1-\2",x)
于 2012-11-13T16:44:14.233 回答
0

Regular expressions are overkill here. Just use the string.replace() function:

>>> a='01/01/12 17:11:11'
>>> a.replace(' ','-')
'01/01/12-17:11:11'
于 2012-11-13T16:45:57.317 回答
0

你不能只使用:

x = x.replace(' ', '-')
于 2012-11-13T16:44:04.670 回答