如何从python中的命令行接收正则表达式

发布于 2021-01-29 16:20:02

我想从命令行接收像’\ t’(制表符)这样的分隔符,并使用它来解析文本文件。

如果我放

delimiter = sys.argv[1]

在代码中,然后从命令行键入

$ python mycode.py "\t"

分隔符是,'\\t'即python会按原样保留输入字符串。

我想将其转换为“ \ t”,以便可以使用例如

'a\tb\tc'.split(delimiter)

得到['a','b','c']

我尝试将“ \”转换为“ \”,但失败。

是否有内置的python函数从命令行处理regex?

关注者
0
被浏览
215
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在Python 2中,您可以使用str.decode('string_escape')

    >>> '\\t'.decode('string_escape')
    '\t'
    

    在Python 3中,您必须先将字符串编码为字节,然后使用unicode_escape

    >>> '\\t'.encode().decode('unicode_escape')
    '\t'
    

    两种解决方案都接受任何转义序列,并将它们正确解码,因此您甚至可以使用一些花哨的unicode东西:

    >>> '\\t\\n\\u2665'.encode().decode('unicode_escape')
    '\t\n♥'
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看