1

正規表現のエンコードについて誤解があります:

>>> simplejson.dumps({'title':r'\d+'})
'{"title": "\\\\d+"}'
>>> simplejson.loads('{"title": "\\\\d+"}')
{u'title': u'\\d+'}
>>> print simplejson.loads('{"title": "\\\\d+"}')['title']
\d+

つまり、printI seeを使用せずに I see\\を使用しprintます\。では、ロードされた dict の値には何が含まれていますか - with\\または with \?

4

1 に答える 1

1

ここにトリックがlistあります: 文字列に実際に含まれる文字を確認するために使用します:

In [3]: list(u'\\d+')
Out[3]: [u'\\', u'd', u'+']

list文字列を個々の文字に分割します。u'\\'1キャラもそう。( の 2 つのバックスラッシュu'\\'エスケープ シーケンスです。) 1 つのバックスラッシュ文字を表します。r'\d+'バックスラッシュも 1 つしかないため、これは正しいです。

In [4]: list(r'\d+')
Out[4]: ['\\', 'd', '+']
于 2013-01-23T12:35:49.543 に答える