4

私は2つのdjango URLを持っています、

(r'^groups/(?P<group>[\w|\W\-\.]{1,60})$')
(r'^groups/(?P<group>[\w|\W\-\.]{1,60})/users$'

([\w|\W\-\.])$URLの正規表現は と に一致soccer playerssoccer players/usersます。groupsとの間のすべてに一致する正規表現を取得するのを手伝ってくれる/人 / に遭遇するまで、グループの後に正規表現を一致させたい

4

1 に答える 1

6

次のようにするだけで、スラッシュまでのすべてに一致します。

regexp = re.compile(r'^group/(?P<group>[^/]+)$')

あなたの例のようなURLを末尾に一致させる必要がある場合は、/userこれを式に追加するだけです:-

regexp = re.compile(r'^group/(?P<group>[^/]+)/users$')

たとえば、ユーザーIDを取得する必要がある場合は、同じマッチングを使用することもできます:-

regexp = re.compile(r'^group/(?P<group>[^/]+)/users/(?P<user>[^/]+)$')

その後、結果を得ることができます:-

match = regexp.match(url) # "group/soccer players/users/123"
if match:
    group = match.group("group") # "soccer players"
    user = match.group("user") # "123"
于 2012-12-04T23:22:36.967 に答える