2016-09-05 15 views
1

私はそれを上げると、エラーとなる再パッケージでは、このいずれかのようグループ名はnumberで始めることはできませんか?

(?P<74xxx>[0-9]+) 

を正規表現を使用することはできませんようにそれは私が開始するグループ名を使用することはできませんように見えます

sre_constants.error: bad character in group name u'74xxx' 

、見えます数字で、なぜ?

PSのgolangは、このような問題を持っていないので、他の多くの言語は

+0

例外を発生させる前の行を見ると、 'not not name.isidentifier()' - 名前付きグループが 're.compile'のキャッシュの一部として内部化されているか、または最適化されているからです彼らが有効な識別子であれば簡単に行うことができます) –

答えて

2

doc考えるん:

変数、識別子がmustnとしてグループ名が有効なPython識別子

でなければなりませんPythonで数字で始まってはいけません。識別子hereについての詳細を参照してください。

identifier ::=  (letter|"_") (letter | digit | "_")* 
letter  ::=  lowercase | uppercase 
lowercase ::=  "a"..."z" 
uppercase ::=  "A"..."Z" 
digit  ::=  "0"..."9" 
-2

これはあなたがr'(?P<74xxx>[0-9]+)'を検索していて、それがPythonでの特殊文字であるため、その後、あなたはそれで\を付加する必要があり、検索パターンで?を含めるしたいパターンである場合。したがって、検索パターンはr'(\?P<74xxx>[0-9]+)'である必要があります。

+0

なぜダウン投票、私は正しい答えを与えました。グループ名はaで始めるべきではありませんか?それは特殊文字なので – neeraj

+1

おそらくこれはOPが求めているものではないからでしょうか? –

関連する問題