2016-03-24 11 views
2

私は、文字列を持っている:PythonでRegexを使って部分文字列を検索するには?

line_to_test = "http://website/[SequenceOfLetters&NumbersONLY].html" 

私は上記のパターンにマッチするための正規表現をしたい:

は、私が現在試みていることである。

c = len(re.findall(r"http:\/\/website\/([a-zA-Z0-9]?).html",line_to_test)) 

しかしcここでもNULLに来ますline_to_testにパターンが含まれている場合

+0

そして、あなたは何をして文字列をテストしたのですか? –

+0

'([a-zA-Z0-9]?)' = 1または0文字または数字 - シーケンスが必要な場合は、 '?'を '?'に置き換えたい... –

+0

'test_string =" sdfmknldksjfnkmsd f 、nm http://abc.de/msndkjnaskl.html " – CodeAllDay

答えて

0

?は、0文字または1文字に一致します。

c = len(re.findall(r"http:\/\/website\/([a-zA-Z0-9]+).html",line_to_test)) 

を試してみてくださいあなたは正規表現をテストするためにregexrなどのオンラインサービスを利用することができます:http://regexr.com/3d301

+0

ありがとうselcuk !!! – CodeAllDay

1

?が、それはこの場合[a-zA-Z0-9]には、オプションでした先行何を意味しています。つまり、0または1回の文字または数字を入力できます。

は、あなたはそれを選択するために、0回以上*を使用する、または1 times`以上を、それを選択するために、+を使用する必要があります。

は、この正規表現を試してみてください:

c = len(re.findall(r"http:\/\/website\/([a-zA-Z0-9]+).html",line_to_test)) 

あなたが*を使用した場合、それはhttp://website/.htmlがうまくいく意味、([a-zA-Z0-9]+)?と同じになります。

Live Demo on RegExr

+0

ありがとう正確な説明のために! – CodeAllDay

関連する問題