Skip to main content
 首页 » 编程设计

Python 正则表达式错误 : nothing to repeat at position 0

2025年05月04日25jackei

我正在尝试匹配可以从普通英文键盘输入的字符串。

因此,它应该包括我们键盘上出现的字母、数字和所有符号。

Corresponding regex : "[a-zA-Z0-9\t ./,<>?;:\"'`!@#$%^&*()\[\]{}_+=|\\-]+" 

我在 regexr.com 上验证了这个正则表达式.

在 python 中,在匹配时出现以下错误:

>>> a=re.match("+how to block a website in edge",pattern) 
 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
  File "C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\tf_1.2\lib\re.py", line 163, in match 
    return _compile(pattern, flags).match(string) 
  File "C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\tf_1.2\lib\re.py", line 293, in _compile 
    p = sre_compile.compile(pattern, flags) 
  File "C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\tf_1.2\lib\sre_compile.py", line 536, in compile 
    p = sre_parse.parse(p, flags) 
  File "C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\tf_1.2\lib\sre_parse.py", line 829, in parse 
    p = _parse_sub(source, pattern, 0) 
  File "C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\tf_1.2\lib\sre_parse.py", line 437, in _parse_sub 
    itemsappend(_parse(source, state, nested + 1)) 
  File "C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\tf_1.2\lib\sre_parse.py", line 638, in _parse 
    source.tell() - here + len(this)) 
sre_constants.error: nothing to repeat at position 0 

请您参考如下方法:

此错误消息与参数位置无关。是的,在上面的问题中,它们的顺序不正确,但这只是问题的一半。

当我有这样的事情时,我遇到过这个问题:

re.search('**myword', '/path/to/**myword')  

我想自动获取“**”,所以我不想在某处手动编写“\”。为此,有 re.escape() 函数。这是正确的代码:

re.search(re.escape('**myword'), '/path/to/**myword') 

这里的问题是在行首之后放置了特殊字符。