2016-10-05 4 views
1
import re 

def test(stest): 
    pattern = re.compile(r'/product\/(.*?)/i') 

    result = pattern.match(stest) 
    if result: 
     print result.group() 
    else: 
     print "Doesn't match" 

test('product/WKSGGPC104/GGPC-The-Paladin') 

上記のようにコーディングを実行すると、「product /」の代わりに「一致しません」という結果が表示されます。regexが動作しないpattern.match

誰かが私を助けてくれますか?私はオンラインツールを使って正規表現をテストしましたが、それは正常に表示され、テストしようとしている文字列と一致します。

ありがとうございました。

+1

文字列が常に 'product'という接頭辞で始まる場合は、正規表現の先頭または末尾を省略してください。文字列内のどこかで始まりではない場合は常にre.search()を使用してください文字列全体をスキャンして、一致する部分文字列を探します。 – Akhil

答えて

1

コードにいくつかの問題があります。

import re 

def test(stest): 
    pattern = re.compile(r'product/([^/]+)'. re.IGNORECASE) 

    result = pattern.match(stest) 
    if result: 
     print(result.group()) 
    else: 
     print("Doesn't match") 

test('product/WKSGGPC104/GGPC-The-Paladin') 

a demo on regex101.comを参照してください:
まず、第二、あなたが後修飾に電話をを提供し、初めには/ありませんでした。

+0

ありがとう、仲間。それは本当に私を助けます。 –

0

文字列リテラルを使用していますが、引き続き文字列の\をエスケープしています。

関連する問題