当作为python脚本的命令行参数给出时,正则表达式被剥离'\'

use*_*807 1 python regex command-line

我正在编写需要在命令行上指定正则表达式的脚本.所以程序应该能够\d+在命令行中使用:

python3 my_script.py \d+
Run Code Online (Sandbox Code Playgroud)

假设my_script.py根据命令行中给出的正则表达式搜索某些文件.

但是当我这样做时,领先者\被剥夺了.所以印刷 sys.argv['my_script.py', 'd+'].

如何才能在命令行中指定正则表达式?请注意正则表达式不在引号中.它甚至可能吗?

(我使用getopt模块处理我的输入参数)

sch*_*ggl 5

您应该使用两个反斜杠:

python3 my_script.py \\d+
Run Code Online (Sandbox Code Playgroud)

要么

python3 my_script.py '\d+'
Run Code Online (Sandbox Code Playgroud)

要使字符串文字中的反斜杠得到正确读取,需要对其进行转义或引用.