我有一个接受正则表达式模式的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}
时,函数中的条件总是为假。我已经坚持这个问题好几天了,我需要帮助。提前谢谢。
答案 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}'