我有一个接受正则表达式模式的 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}
时函数中的条件总是以假结束。我被这个问题困扰了好几天,我需要帮助。提前致谢。
最佳答案
您忘记转义 '\'
字符,它们对于 bash 来说是特殊的:
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}'
关于python - 将正则表达式模式作为系统参数传递给 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49252176/