2017-09-07 19 views
-2

普通の英語のキーボードから入力できる文字列と一致させようとしています。Python正規表現エラー:0の位置に何も繰り返しません。

したがって、キーボードにはアルファベット、数字、およびすべての記号が含まれている必要があります。

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

この正規表現をregexr.comで検証しました。

>>> 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 
+1

すべきですか?私は、次のエラーを取得していますマッチングにPythonで

、 Pythonのバグ? – dnit13

+0

あなたのパターンは '[ - } \ t] +' *(ASCIIテーブルを参照)*に短縮できることに注意してください。 '〜〜\ t \ n] +' –

答えて

3

あなたはre.match後方のためのあなたの引数を持っている:それは真剣に

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

+0

最初の文字が正規表現を引き起こしているので、数量子 '+'が指定されていますエンジンは位置0で何も繰り返さない**と貧弱な 'python'が非難されています:) – anubhava

関連する問題