获取一个简单的正则表达式Python脚本作为另一个(非Python)项目的一部分在VSCode中工作

问题描述 投票:0回答:1

嗨,我有 python 的基本知识,但不太熟悉整个 pip/env 的东西,也不熟悉 VScode,所以我有点不确定从哪里开始。我写了一个简单的脚本,它是另一个非 python 项目的一部分。

脚本是:

import re

re_name = re.compile("name=\"(+)\"")

with open('data.xml') as f:
    lines = f.readlines() # list containing lines of file

    for line in lines:
        if line:
            if (re_name.match(line)):
                print (line)
            else:
                print ("No match for " + line)

我得到以下内容

PS REDACTED > python svg.py
Traceback (most recent call last):
  File "svg.py", line 3, in <module>    
    re_name = re.compile("name=\"(+)\"")
  File "C:\Users\REDACTED\AppData\Local\Programs\Python\Python36-32\lib\re.py", line 233, in compile
    return _compile(pattern, flags)
  File "C:\Users\REDACTED\AppData\Local\Programs\Python\Python36-32\lib\re.py", line 301, in _compile
    p = sre_compile.compile(pattern, flags)
  File "C:\Users\REDACTED\AppData\Local\Programs\Python\Python36-32\lib\sre_compile.py", line 562, in compile
    p = sre_parse.parse(p, flags)
  File "C:\Users\REDACTED\AppData\Local\Programs\Python\Python36-32\lib\sre_parse.py", line 855, in parse
    p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
  File "C:\Users\REDACTED\AppData\Local\Programs\Python\Python36-32\lib\sre_parse.py", line 416, in _parse_sub
    not nested and not items))
  File "C:\Users\REDACTED\AppData\Local\Programs\Python\Python36-32\lib\sre_parse.py", line 765, in _parse
    p = _parse_sub(source, state, sub_verbose, nested + 1)
  File "C:\Users\REDACTED\AppData\Local\Programs\Python\Python36-32\lib\sre_parse.py", line 416, in _parse_sub
    not nested and not items))
  File "C:\Users\REDACTED\AppData\Local\Programs\Python\Python36-32\lib\sre_parse.py", line 616, in _parse
    source.tell() - here + len(this))
sre_constants.error: nothing to repeat at position 7

我无法理解这个错误消息,也看不到代码有任何问题(但很可能遗漏了一些东西!)所以我想知道这是否与我的 python 安装有关。我安装了 Python 扩展,但是当我尝试

Python: Select Interpreter
时,出现此错误

enter image description here

Python版本是

> python --version
Python 3.6.2

这似乎很旧,但我不确定如何以正确的方式升级(我假设 vscode 扩展会处理这个问题)。

感觉我只是错过了一件愚蠢的事情,但有太多我不明白的事情,不知道该去哪里。

python python-3.x regex visual-studio-code
1个回答
0
投票
正则表达式模式中的

+
表示
more than once
。例如,正则表达式模式
a+
可以匹配
aa
aaa

+
必须遵循您想要至少匹配一次的模式。因此,单个
+
没有意义,并且会给出错误
nothing to repeat

如果您只想匹配
+
本身,请使用
\+

© www.soinside.com 2019 - 2024. All rights reserved.