繁体   English   中英

Python Regex错误:在位置0处无重复

[英]Python Regex Error : nothing to repeat at position 0

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

因此,它应该包括字母,数字和键盘上存在的所有符号。

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.match的论点:应该是

re.match(pattern, "+how to block a website in edge")

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

当我遇到这样的问题时,我就遇到了这个问题:

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

我想自动获得“ **”,所以我不想在某个地方手动写“ \\”。 为此,存在re.escape()函数。 这是正确的代码:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM