pse*_*ler 1 python regex python-3.x
我正在尝试匹配可以从普通英语键盘输入的字符串。
因此,它应该包括字母,数字和键盘上存在的所有符号。
Corresponding regex : "[a-zA-Z0-9\t ./,<>?;:\"'`!@#$%^&*()\[\]{}_+=|\\-]+"
Run Code Online (Sandbox Code Playgroud)
我在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
Run Code Online (Sandbox Code Playgroud)
此错误消息与参数的位置无关。是的,在上面的问题中,它们的顺序不正确,但这只是问题的一半。
当我遇到这样的事情时,我曾经遇到过这个问题:
re.search('**myword', '/path/to/**myword')
Run Code Online (Sandbox Code Playgroud)
我想自动获得'**',所以我不想在某处手动写'\'。为此,有 re.escape() 函数。这是正确的代码:
re.search('**myword', '/path/to/**myword')
Run Code Online (Sandbox Code Playgroud)
这里的问题是放在行首之后的特殊字符。
| 归档时间: |
|
| 查看次数: |
7186 次 |
| 最近记录: |