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

标签 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}时函数中的条件总是以假结束。我被这个问题困扰了好几天,我需要帮助。提前致谢。

最佳答案

您忘记转义 '\' 字符,它们对于 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/

相关文章:

python - 在 Flask 的 HTML 文件中调用 python 函数

java - 正则表达式匹配所有不以数字开头的单词

java - 正则表达式:忽略组的顺序

python - 如何在 Google App Engine 上使用 Coffeescript

python - 将唯一数字映射到列表列中的每个唯一字符串的最有效的计算方法

python sum(dict.values()) 给出不正确的结果?

设置为无限时的 Python 多处理队列上限为 32768 (2^15)

python - 将双引号插入 MySql 数据库

python - 使用 BeautifulSoup4 从网页获取文本时出现 "None"和 'NoneType object...' 错误

javascript - 使用正则表达式从函数中删除参数类型