Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包含正则表达式的Python shlex split选项_Python_Python 3.x_Split_Shlex - Fatal编程技术网

包含正则表达式的Python shlex split选项

包含正则表达式的Python shlex split选项,python,python-3.x,split,shlex,Python,Python 3.x,Split,Shlex,假设我想发出这个命令 /maryam-e crawl\u pages-d domain.tld-r“a href=\”*“ 然后把它分开 当我跑的时候 >>>line = './maryam -e crawl_pages -d domain.tld -r "a href=\".*"' >>>shlex.split(line) 我得到以下错误 Traceback (most recent call last): File &q

假设我想发出这个命令
/maryam-e crawl\u pages-d domain.tld-r“a href=\”*“
然后把它分开

当我跑的时候

>>>line = './maryam -e crawl_pages -d domain.tld -r "a href=\".*"'
>>>shlex.split(line)
我得到以下错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/shlex.py", line 311, in split
    return list(lex)
  File "/usr/lib/python3.8/shlex.py", line 300, in __next__
    token = self.get_token()
  File "/usr/lib/python3.8/shlex.py", line 109, in get_token
    raw = self.read_token()
  File "/usr/lib/python3.8/shlex.py", line 191, in read_token
    raise ValueError("No closing quotation")
ValueError: No closing quotation
当你分配

#XXX坏了
行='。/maryam-e爬网页面-d domain.tld-r“a href=\”
Python解析字符串并解析任何反斜杠转义,因此在
line
的值中没有实际的反斜杠。您可以通过使用原始字符串来防止一层反斜杠解析

line=r./maryam-e crawl\u pages-d domain.tld-r“a href=\”
但如果您的期望值真的应该包含一个文字反斜杠,那么您的输入从根本上来说是错误的

我想你只是有一个不正确的期望,但如果这真的是你想要的,试试看

#XXX可疑
line=r'./maryam-e crawl\u pages-d domain.tld-r“a href=\\\\”
但看起来是这样的:

['./maryam', '-e', 'crawl_pages', '-d', 'domain.tld', '-r', 'a href=\\".*']
(因为Python打印双反斜杠以显示文字反斜杠)

['./maryam', '-e', 'crawl_pages', '-d', 'domain.tld', '-r', 'a href=\\".*']