将正则表达式模式作为Python脚本的系统参数传递

时间:2018-03-13 09:11:13

标签: python regex python-2.7

我有一个接受正则表达式模式的Python脚本,它执行以下操作:

import sys
import re

pattern = re.compile(sys.argv[1])
time_string = '2017-08-14 11:07:46'

def func(pattern):
    if re.search(pattern, time_string):
        # do something

但是当我运行python script.py \d{4}\-\d{2}\-\d{2}\s\d{2}:\d{2}:\d{2}时,函数中的条件总是为假。我已经坚持这个问题好几天了,我需要帮助。提前谢谢。

1 个答案:

答案 0 :(得分:3)

你忘了逃避'\'字符,它们特别适合打击:

python script.py \\d{4}\-\\d{2}\-\\d{2}\\s\\d{2}:\\d{2}:\\d{2}

或者如评论所示,将整个字符串放在单引号中,然后'\'将按字面意思处理:

python script.py '\d{4}\-\d{2}\-\d{2}\s\d{2}:\d{2}:\d{2}'