【发布时间】:2012-05-08 12:24:51
【问题描述】:
谁能帮我把这个正则表达式翻译成 Python re 模块?
sed -e "s/^[^ ]* \([^ ]*\) \([0-9]*\) \([0-9:]*\) \([0-9]*\) /\1 \2 \4 \3 /"
据我了解,这会将一个文本替换为另一个文本。如何使用re 模块创建类似的东西?谢谢!
例如Fri Mar 21 07:16:51 2008 -0600 将转换为 Mar 21 2008 07:16:51 -0600。
source = 'Fri Mar 21 07:16:51 2008 -0600'
pattern = re.compile('^[^ ]* \([^ ]*\) \([0-9]*\) \([0-9:]*\) \([0-9]*\) ')
result = re.sub('\\1 \\2 \\4 \\3 ', source)
【问题讨论】:
-
@nightcracker:我知道我必须使用
re.sub,但我无法想象\1 \2 \4 \3是什么意思。 -
\1 \2 \4 \3可以使用\\1 \\2 \\4 \\3匹配,除此之外,您的正则表达式应该直接转换为 Python 的 re 模块。 -
您能否在问题中包含一些示例输入?
-
我添加了示例输入和我的尝试(感谢@covertCoder)。但是还是不行。
-
那应该也是
result = pattern.sub(...)