

例えば、

[code]

    https://example.com/theater/13/130301/3271/
    
[/code]

というURLからISBNをあらわす

[code]

    130301/3271/
    
[/code]

をキーとして抜き出したいです。

[code]

    sre_constants.error: missing ), unterminated subpattern at position 1
    
[/code]

のようなエラーが出てしまうのですが、どうしたらいいのか調べてもわからないので教えてください。

プログラムは以下のようになっています。

[code]

    import re
    
    url = 'https://example.com/theater/13/130301/3271/'
    m = re.search(r'/(^/([^/]+)$',url)
    print(m.group(1))
    
[/code]


CC BY-SA 4.0
2018-06-13T04:01:17.307
44737
2018-06-14T06:42:13.213
2018-06-14T06:42:13.213
3054
28916
question
python 正規表現
URLの末尾から2つ分のパス要素を取り出したい


> missing ),

というのは、あるはずの `)` が見つからない（足りない）、ということです。  
開きかっこ「`(`」が2つあるのに、閉じかっこ「`)`」が1つしかなく、対応していないことが原因です。  
グループを1つ作るとすると、下記のようになるかと思います。

[code]

    import re
    
    url = 'https://example.com/theater/13/130301/3271/'
    m = re.search(r'([^/]+/[^/]+/)$', url)
    print(m.group(1))
    
[/code]

出力:

[code]

    130301/3271/
    
[/code]

ちなみに、この場合でしたらマッチ全体が望む結果なので、グループは作らなくてもよいです。  
`group` メソッドは引数を省略すると `0` と見なされ、`0` はマッチ全体を意味します。

[code]

    m = re.search(r'[^/]+/[^/]+/$', url)
    print(m.group())
    
[/code]


CC BY-SA 4.0
2018-06-13T05:32:30.630
44741
2018-06-13T05:32:30.630
3054
44737
answer